在我的nodejs程序中,我有一个叫做person的模块,它有一个也有它的子方法(describe)的原型对象(about)。我试图访问对象的属性,但我越来越未定义。nodejs中的递归原型继承/ javascript
有人能纠正我的理解吗?我在这里做错了什么?
index.js
var Person = require("./person");
var sam = new Person({name:"Sam",age:23})
sam.about.describe();
person.js
module.exports = (function() {
var person = function(options) {
if (options && options.name) this.name = options.name;
if (options && options.age) this.age = options.age;
}
person.prototype.about = {
describe : function(){
console.log("I am",this.name,"and",this.age,"years old");
}
}
return person;
})();
预期输出: “我是萨姆和23岁的” 实际输出: “我是不确定的,不确定岁”
那是因为'this'指向'about'而不是'person'。在原型中也有对象会产生副作用 – Rajesh
这里的递归是什么? – 2017-04-19 11:12:21
@torazaburo ..对不起,它实际上并没有递归..将修改.. –