Nodejs调用一个函数

时间:2017-06-17 09:41:44

标签: javascript node.js

我是学习Node.js的新生。为什么console.log会给我unfined?我希望它会打印出“Hello World!”代替。我哪里错了?

谢谢!

function Greetr() {
    this.greeting = 'Hello World!';
}


Greetr.prototype.greet = function() {
    console.log(this.greeting);
}

Greetr.prototype.greet();

1 个答案:

答案 0 :(得分:1)

因为您通过原型访问您的问候语。在这种情况下,this不是您期望的对象。您可以通过记录来查看this是什么。

function Greetr() {
    this.greeting = 'Hello World!';
}

Greetr.prototype.greet = function() {
   console.log(this);
}

Greetr.prototype.greet();

如您所见,this指的是prototype object,其中没有任何名称为greeting的属性,因此请记录undefined

要获得所需的结果,首先需要创建object,然后通过greet

调用object函数

function Greetr() {
   this.greeting = 'Hello World!';
}


Greetr.prototype.greet = function() {
   console.log(this.greeting);
}

var greetr = new Greetr();
greetr.greet();