0
我試圖將默認對象值放入函數的原型中。但是這導致原型「默認」對象被另一個實例改變。爲什麼會發生?我知道我可以將默認對象放在函數內部,但這不是我想要做的。有人能解釋爲什麼原型變量被二次覆蓋嗎?演示是在這裏:https://jsfiddle.net/c0zg5vjp/2/函數原型對象在另一個實例上更改
window.foo = function(options) {
this.settings = jQuery.extend({}, this.defaults, options || {});
this.bar = function() {
this.settings.classes.push('new_class');
}
}
window.foo.prototype.defaults = { 'classes' : ['default'] };
var instance = new foo();
instance.bar();
var instance_2 = new foo();
instance_2.bar();
alert(instance_2.settings.classes.join());