1 回答

TA貢獻1886條經驗 獲得超2個贊
問題一:
我傾向于第四種寫法 用匿名函數把插件包起來
好處是:1.避免其它插件也用了 $
做關鍵字;2.避免插件內部方法污染全局
方式一我不知道好壞
方式二 $
可能會被其他同名變量污染
方式三和方式一類似 包了一層自執(zhí)行函數 但既然包了一層并把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 };
添加回答
舉報