1 回答
TA贡献1886条经验 获得超2个赞
问题一:
我倾向于第四种写法 用匿名函数把插件包起来
好处是:1.避免其它插件也用了 $
做关键字;2.避免插件内部方法污染全局
方式一我不知道好坏
方式二 $
可能会被其他同名变量污染
方式三和方式一类似 包了一层自执行函数 但既然包了一层并把jQuery作为参数传递了 内部就可以直接写 $
了$.fn.methodName = function() {}
和 $.fn.extend({ methodName: function() {} })
的好坏我不是很清楚
问题二:$.extend
方法是合并对象 用于将传入的参数覆盖默认配置
var a = { name: 'a' };
var b = { name: 'b', age: 2 };
var c = $.extend(a, b); // 把 b 对象合并到 a 对象
console.log(a); // { name: 'b', age: 2 };
console.log(b); // { name: 'b', age: 2 };
console.log(c); // 最终配置 { name: 'b', age: 2 };
// 不推荐这么写 这么写会把 a 也修改了 有时候还需要使用到原始配置
// 推荐这种写法
var a = { name: 'a' };
var b = { name: 'b', age: 2 };
var c = $.extend({}, a, b); // 把 b 和 a 对象合并到 {} 对象 保留 a 对象
console.log(a); // { name: 'a' };
console.log(b); // { name: 'b', age: 2 };
console.log(c); // 最终配置 { name: 'b', age: 2 };
添加回答
举报