下面的函数与Cannot read property 'message' of undefined
失败。为什么方法message
未定义?
function person(name, age) {
this.name = name;
this.age = age;
this.message = function() {
console.log(this);
console.log(this.name + " is " + this.age + " years old !");
}
};
person("nirmesh", 35).message();
你正试图做一个OOP方法,对吧?意思是person(name, age)
应该是一个构造函数。
在这种情况下,您忘记了new
关键字来实例化一个新对象,如下所示:(new person("nirmesh",35)).message();
PS:你真的不需要包装托架,它更多用于阐述:)
呼叫人功能不会返回任何内容。如果您想在调用后访问人员功能,您应该将其返回:
function person(name, age) {
this.name = name;
this.age = age;
this.message = function () {
console.log(this);
console.log(this.name + " is " + this.age + " years old !");
}
return this;
};
person("nirmesh",35).message();
但是,我不确定你这样做的方式是否正确!
您可以使用new关键字创建person对象并传递参数。然后调用该对象上的函数:
function person(name, age) {
this.name = name,
this.age = age,
this.message = function () {
console.log(this.name + " is " + this.age + " years old !");
}
};
var p = new person("nirmesh",35);
p.message();