javascript - 在 JavaScript(NodeJs) 中调用对象内部的函数名称的区别

标签 javascript node.js

<分区>

假设我有 2 个对象 xy。详情写在下面的代码中。

let x = {
  publish: function() {
    console.log(this.publish.name);
  }
};
let y = {};
y.publish = function() {
  console.log(this.publish.name);
};
x.publish();
y.publish();

我在调用 x.publish()y.publish() 时发现输出有所不同。 前者返回函数名,后者返回空。任何人都可以解释为什么会这样吗,还有其他的吗 我可以在后者中检索函数名称的可能方法(无需硬编码)。我正在使用 NodeJs 版本 8。

最佳答案

由于第二种情况下的函数没有任何关联的名称,因此您得到的是空字符串。

let x = {
  publish: function() {
    console.log(this.publish.name);
  }
};
let y = {};
y.publish = function() {
  console.log(this.publish.name);
};

let z = {};
z.publish = function hello() {
  console.log(this.publish.name);
};
x.publish();
y.publish();
z.publish();

关于javascript - 在 JavaScript(NodeJs) 中调用对象内部的函数名称的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53721605/

相关文章:

javascript - Edge.js 从 Expandoobject 转换为字符串

javascript - Jquery中的点击事件

javascript - Jquery在数据属性更新后获取新值

node.js - Mongoose 填充为实例对象

javascript - 访问后端在另一个域上设置的 cookie

node.js - Node.js 中的 fd(文件描述符)有什么用?

mysql - 在 Node.js 中同时生成的发票具有相同的编号。如何实现唯一性?

Javascript - HTML 中的对象循环和组织数据

javascript - 谷歌图表折线图中的 datetime.timedelta

javascript - 如果验证失败则调用 javascript