无法访问Javascript属性

无法访问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 !"); } };

下面的函数失败,无法读取未定义的属性“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();

您正在尝试一种面向对象的方法,对吗?这意味着
人(姓名、年龄)
应该是一个构造函数

在这种情况下,您忘记了使用
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();
然而,我不确定你这样做是否正确