javascript - Nodejs 调用函数

标签 javascript node.js

我是一名刚开始学习 Node.js 的学生。为什么 console.log 会给我未定义的信息?我希望它会打印出“Hello World!”反而。我哪里错了?

谢谢!

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


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

Greetr.prototype.greet();

最佳答案

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

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

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

Greetr.prototype.greet();

如您所见,this 引用您的原型(prototype)对象,它没有任何名为 greeting 的属性,因此它记录 未定义

要获得所需的结果,您首先需要创建一个对象,然后通过该对象调用您的greet函数

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


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

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

关于javascript - Nodejs 调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44603060/

相关文章:

javascript - 如何将预编译的 hogan.js 模板包装到 AMD 模块中?

node.js - 需要有关如何将 Postman 的 Newman 与 Nodejs 结合使用的示例吗?

node.js - 使用 arangodb 和 nodejs 进行简单查询

javascript - jQuery:自动文本框中的总值

javascript - 为什么我的 array.length 返回这么大的数字?

javascript - 元素替换后的 JQuery 对象引用

javascript - 如何使用 JavaScript 验证多个 mcq 问题?

javascript - 为什么这个 javascript 代码不起作用?

javascript - Yeoman:从缓存中安装依赖项

javascript - 下载文件( Electron )