1 回答
TA貢獻(xiàn)1886條經(jīng)驗(yàn) 獲得超2個(gè)贊
問(wèn)題一:
我傾向于第四種寫(xiě)法 用匿名函數(shù)把插件包起來(lái)
好處是:1.避免其它插件也用了 $ 做關(guān)鍵字;2.避免插件內(nèi)部方法污染全局
方式一我不知道好壞
方式二 $ 可能會(huì)被其他同名變量污染
方式三和方式一類(lèi)似 包了一層自執(zhí)行函數(shù) 但既然包了一層并把jQuery作為參數(shù)傳遞了 內(nèi)部就可以直接寫(xiě) $ 了$.fn.methodName = function() {} 和 $.fn.extend({ methodName: function() {} }) 的好壞我不是很清楚
問(wèn)題二:$.extend 方法是合并對(duì)象 用于將傳入的參數(shù)覆蓋默認(rèn)配置
var a = { name: 'a' };
var b = { name: 'b', age: 2 };
var c = $.extend(a, b); // 把 b 對(duì)象合并到 a 對(duì)象
console.log(a); // { name: 'b', age: 2 };
console.log(b); // { name: 'b', age: 2 };
console.log(c); // 最終配置 { name: 'b', age: 2 };
// 不推薦這么寫(xiě) 這么寫(xiě)會(huì)把 a 也修改了 有時(shí)候還需要使用到原始配置
// 推薦這種寫(xiě)法
var a = { name: 'a' };
var b = { name: 'b', age: 2 };
var c = $.extend({}, a, b); // 把 b 和 a 對(duì)象合并到 {} 對(duì)象 保留 a 對(duì)象
console.log(a); // { name: 'a' };
console.log(b); // { name: 'b', age: 2 };
console.log(c); // 最終配置 { name: 'b', age: 2 };
添加回答
舉報(bào)
