好的,这里有一些我正在使用atm的代码。Javascript中的对象和object.prototype之间的区别
我的问题是,我真的不明白对象和对象原型之间的差异。直到现在,我还以为,如果我创建一个新的对象,例如新的内存,这继承了我在内存中声明的所有属性。但是,在我的代码中,我需要为Memory.prototype添加选项。
所以我的核心问题是:是什么Object.prototype中的对象的属性和属性之间的区别?
编辑:在记忆功能中指定: 我登录this.options。这不起作用,除非我包括Memory.prototype.options = {...}。如果一个新的Memory从Memory中继承了这些属性,并且我定义了如上面的this.options.availableCards,为什么我需要向原型添加选项?
var createMemory = function(){
new Memory({wrapperID: 'memory-game'});
};
var Memory = function (options) {
//check for required options
if ((options.wrapperID === undefined)){
console.error('ERROR: not all required options given. wrapperID is required!');
return false;
}
//hardcoded values
this.options.availableCards = 22;
this.options.cols = 4;
this.options.rows = 4;
this.options.fliptime = this.options.flipTime || 1; //set default
this.options = extend({}, this.options);
extend(this.options, options);
//this._init();
console.log(this.options);
};
// why is this required?
Memory.prototype.options = {
onGameEnd: function(){
return false;
}
};
createMemory();
什么是'extend'? –
这是在代码中声明的函数,不用担心 –