javascript - 使用方法名称作为实例变量的值

标签 javascript

我正在尝试完善我的 Javascript 知识。这看起来是一件很简单的事情,但却让我感到困惑。

我需要将方法名称存储为变量。将我的测试用例减少到尽可能小的大小,结果如下:

var someobj = { 
  someMethod: function() {
      console.log('woo');
  }, 
  somevariable: this.someMethod
}

没有回调,一切都很好很简单。

console.log(someobj.someMethod);

返回:

[Function]

太棒了。但是:

console.log(someobj.somevariable)

返回:

undefined

我期待它返回“[Function]”。这是为什么?

谢谢。

最佳答案

当以 JSON 格式声明对象时,没有 this 关键字。 (好吧,有,但 i 指的是外部上下文的 this,例如全局上下文中的 window)您不能在这样的声明中访问当前对象。 因此,您之后需要设置该变量,如下所示:

var someobj = { 
  someMethod: function() {
      console.log('woo');
  } 
}
someobj.somevariable = someobj.someMethod;

关于javascript - 使用方法名称作为实例变量的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9053336/

相关文章:

javascript - Fat-Free 框架 + JQuery AJAX GET = 无响应

php - 如何将可能的 URI 与 PHP 中的其他内容分开?

javascript - 提交表单并写入文件

javascript - 为什么 JavaScript 函数不起作用?

javascript - 在fabricjs中查找旋转对象的 Angular 坐标

JavaScript/jQuery - 获取当前元素跨度的值

javascript - 如何修改数组并将其转换为 JSON

用于带一个点或不带点的有效正数和负数的 JavaScript

javascript - Tabulator 是否可以将时间强制为 24 小时?

javascript - 在 javascript 中,在一个函数中过滤和映射一个数组?