无法访问Javascript属性
下面的函数失败,无法读取未定义的属性“message”。 为什么方法无法访问Javascript属性,javascript,Javascript,下面的函数失败,无法读取未定义的属性“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 !"); } };
消息未定义
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();
您正在尝试一种面向对象的方法,对吗?这意味着人(姓名、年龄)
应该是一个构造函数
在这种情况下,您忘记了使用new
关键字来实例化一个新对象,如下所示:(newperson(“nirmesh”,35)).message()代码>
PS:您实际上不需要包装括号,它更多的是为了精化:)您可以使用新的关键字并通过传递参数来创建person对象。然后调用该对象上的函数:
职能人员(姓名、年龄){
this.name=name,
这个年龄,
this.message=函数(){
log(this.name+“是”+this.age+“岁!”);
}
};
var p=新人(“nirmesh”,35);
p、 消息()代码>调用person函数不返回任何内容。如果要在调用person函数后访问该函数,则应返回该函数:
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();
然而,我不确定你这样做是否正确