我正在尝试使用以下内容在命名空间内分配一个原型(所有内容都包含在一个全局对象中):
原型对象:{
Person : function(config){
var that = this;
this.name = config.name;
this.age = config.age;
console.log(that);
that.prototype.working = function(){
console.log(this.name + 'is working');
};
},
},
然后我在控制台中使用它来检查它:
var me = new global.prototypeObjects.Person({name:'Mike', age:'40'});
这给出了这个错误:
TypeError:无法设置未定义的属性“工作”
但是,如果我明确分配原型,即:
原型对象:{
Person : function(config){
var that = this;
this.name = config.name;
this.age = config.age;
console.log(that);
**global.prototypeObjects.Person**.prototype.working = function(){
console.log(this.name + 'is working');
};
}
},
然后它按预期工作,我得到以下信息:
global.prototypeObjects.Person {name: "Mike", age: "40", working: function}
和 me.working() 注销“迈克正在工作”
有人可以解释为什么我不能在这种情况下使用“this”吗?