【JavaScript】插件参数的写法
就是实现复制的一个过程
- (function() {
- var Explode = function(container, params) {
- 'use strict';
- var n = this;
- if(!(this instanceof Explode)) return new Explode(container, params);
- var defaults = {
- img: 'chi2.png',
- type: 1
- };
- params = params || {}; /*有参数传递进来赋给params,没有为空*/
- var originalParams = {}; /*备份传进来的params*/
- for(var param in params) { /*遍历params*/
- if(typeof params[param] === 'object') { /*如果是对象,继续遍历该对象,再赋值*/
- originalParams[param] = {};
- for(var deepParam in params[param]) {
- originalParams[param][deepParam] = params[param][deepParam];
- }
- } else { /*不是对象,直接赋值*/
- originalParams[param] = params[param];
- }
- };
- for(var def in defaults) { /*遍历默认的参数,如果传入的参数没有定义到,则把默认值加进来,若已定义,则默认值没用*/
- if(typeof params[def] === 'undefined') { /*比如:如果params[img]没有定义,则使用默认值*/
- params[def] = defaults[def];
- } else if(typeof params[def] === 'object') {
- for(var deepDef in defaults[def]) {
- if(typeof params[def][deepDef] === 'undefined') {
- params[def][deepDef] = defaults[def][deepDef];
- }
- }
- }
- };
- n.params = params;
- n.originalParams = originalParams;
- n.container = typeof container === 'string' ? document.querySelectorAll(container) : container;
- if(!n.container || (n.container.length && n.container.length == 0)) return; /*没有container直接return*/
- if(n.container.length && n.container.length > 1) { /*有container且个数大于1*/
- var s = [];
- for(var i = 0; i < n.container.length; i++) {
- s.push(new Explode(n.container[i], params));
- };
- return s;
- };
- n.container = n.container[0] || n.container; /*有且仅有一个container*/
- })()
【JavaScript】插件参数的写法的更多相关文章
- 如何开发原生的 JavaScript 插件(知识点+写法)
一.前言 通过 "WWW" 原则我们来了解 JavaScript 插件这个东西 第一个 W "What" -- 是什么?什么是插件,我就不照搬书本上的抽象概念了 ...
- 谈谈javascript插件的写法
插件顾名思义就是能在一个页面多处使用, 各自按自己的参数配置运行, 并且相互不会冲突. 会写javascript插件是进阶js高级的必经之路, 也是自己所学知识的一个典型的综合运用. 如果你还没头绪, ...
- JavaScript中以一个方法作为参数的写法
前言,我们写js的时候,经常会看到一些方法,比如说: $("#ids").click(function( alert("Click me"); )); ---- ...
- 初学者--bootstrap(五)JavaScript插件(上)----在路上(6)
jQuery 插件为 Bootstrap 的组件赋予了“生命”.可以简单地一次性引入所有插件,或者逐个引入到你的页面中. 一:首先要确认的是,单个还是全部引入: JavaScript 插件可以单个引入 ...
- 大熊君JavaScript插件化开发------(实战篇之DXJ UI ------ ItemSelector)
一,开篇分析 Hi,大家好!大熊君又和大家见面了,还记得前两篇文章吗.主要讲述了以“jQuery的方式如何开发插件”,以及过程化设计与面向对象思想设计相结合的方式是 如何设计一个插件的,两种方式各有利 ...
- jquery插件 - 学习笔记 (插件参数及函数的调用)
今天研究的是jquery插件的基本写法: 比如我打算写一个名为 ImageZoom 的插件 前台调用: <script src="ImageZoom.js"></ ...
- Bootstrap3.0学习教程十七:JavaScript插件模态框
这篇文章中我们主要来学习一下JavaScipt插件模态框.在学习模态框之前,我们先来了解一下JavaScript插件吧. JavaScript插件概览 插件可以单个引入(使用Bootstrap提供的单 ...
- (转)Javascript匿名函数的写法、传参、递归
(原)http://www.veryhuo.com/a/view/37529.html (转)javascript匿名函数的写法.传参和递归 javascript匿名函数的写法.传参和递归 http: ...
- (转)javascript匿名函数的写法、传参和递归
(原)http://www.veryhuo.com/a/view/37529.html (转)javascript匿名函数的写法.传参和递归 http://www.veryhuo.com 2011-0 ...
随机推荐
- golang学习之slice基本操作
slice的增删改查: //删除 func remove(slice []interface{}, i int) []interface{} { // copy(slice[i:], slice[i+ ...
- 实例-PHP_SELF、 SCRIPT_NAME、 REQUEST_URI区别-获取前台公用文-dirname-PHP的"魔术常量"-str_replace
Part1:实例 $_SERVER[PHP_SELF], $_SERVER[SCRIPT_NAME], $_SERVER['REQUEST_URI'] 在用法上是非常相似的,他们返回的都是与当前正在使 ...
- CodeForces 616A(水题)
while(t--) 最后结果t=-1 #include <iostream> #include <string> #include <cstring> #incl ...
- 学习ssm心得
学习是一个探索的过程,在我编程能力提高的阶段中,我发现在编写代码之前,必须得弄清代码的逻辑,我到底要干什么,从哪一步做起.端与端之间该怎么衔接. 先把问题想清楚,再去编写.不要急着去乱敲一通,一点用处 ...
- Breakpoint debugging
断点调试的作用: A:查看程序的执行流程. B:调试程序. package basic.java; public class DebugTest { public static void main(S ...
- 安卓app开发-04- app运行的运行和调试
app 运行的运行和调试 本篇介绍在 Android Studio 开发工具,运行调试设备:真机和虚拟机. 真机调试(USB 连接手机) 尽量使用真机进行调试,无论是调试效果和速度都比模拟器要好.使用 ...
- 客户端和服务端如何使用Token和Session
一.我们先解释一下他的含义: 1.Token的引入:Token是在客户端频繁向服务端请求数据,服务端频繁的去数据库查询用户名和密码并进行对比,判断用户名和密码正确与否,并作出相应提示,在这样的背 ...
- python笔记8-多线程threading之封装式
执行函数 1.先写一个执行函数,用来实现做某件事情,不同的人吃火锅用一个参数people代替. # coding=utf-8 import threading import time def chiH ...
- @Autowired和@Resource注解的区别
@Autowired注解是按类型装配依赖对象,默认情况下它要求依赖对象必须存在,如果允许null值,可以设置它required属性为false.如果我们想使用按名称装配,可以结合@Qualifier注 ...
- Asp.Net MVC Identity 2.2.1 使用技巧(一)
开发环境:vs2015 UP3 or vs2017RC 项目环境:asp.net 4.6.1 identity版本为:asp.net identity 2.2.1 1.创建项目. 没什么好说 ...