我是学习Node.js的新生。为什么console.log会给我unfined?我希望它会打印出“Hello World!”代替。我哪里错了?
谢谢!
function Greetr() {
this.greeting = 'Hello World!';
}
Greetr.prototype.greet = function() {
console.log(this.greeting);
}
Greetr.prototype.greet();
答案 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();