以下功能失败,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();
答案 0 :(得分:1)
您正在尝试执行OOP方法,对吗?意味着person(name, age)
应该是构造函数。
在这种情况下,您忘记了new
关键字来实例化一个新对象,例如:(new person("nirmesh",35)).message();
PS:您实际上并不需要用括号括起来,更多的是为了详细说明:)
答案 1 :(得分:1)
您可以使用 new 关键字并通过传递参数来创建 person 的 object 。然后在该 object 上调用该函数:
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();
答案 2 :(得分:1)
呼叫人功能不返回任何内容。如果要在调用后访问人员功能,则应将其返回:
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();
但是,我不确定您执行此操作的方式是否正确!