有人可以向我解释我的代码的结果,我不明白这里发生了什么......
这是代码:
var myObj = (function() {
var testPatt = function(params) {
jQuery.extend(this.options, this.defaults, params);
};
testPatt.prototype = {
constructor : testPatt,
options : {},
defaults : {}
};
return testPatt;
})();
var title1 = new myObj({ "title" : "mon titre" });
var title2 = new myObj({ "title" : "mon titre 2ème edition" });
console.log(title1.options.title) //--> "mon titre 2ème edition"; ???????
我希望控制台写“mon titre”但结果是“montitre2èmeedition”,我无法解释为什么......
请参阅fiddle
答案 0 :(得分:2)
只有一个原型,并且在实例之间共享。
因此,每次创建新对象时,都会覆盖“全局”选项(存储在原型中)。