javascript - 无法在 JavaScript 对象的函数中使用自己的属性

标签 javascript

我试图理解以下代码:

var x = {
    editBox:  _editBox,
    comboBox: _comboBox,
    getExchangeRate: function() {
        var r = parseFloat(_editBox.val());
        return isNaN(r) ? null : r;
    }
}

我的问题是关于 getExchangeRate()_editBox 的使用。

我正在创建一个 JavaScript 对象,它有两个值属性和一个函数属性。但为什么该函数不能使用 editBox 呢?如果我尝试,它是未定义的。

它如何使用_editBox?调用该函数时可能要晚得多。我知道正在幕后进行一些工作以使其可用,但我如何知道它仍然有效?如果我可以使用 editBox 来代替,不是更有意义吗?

来自其他语言,这当然看起来更合乎逻辑。

最佳答案

But why can't the function use editBox? It's undefined if I try.

它是对象的属性,而不是作用域内的变量。

this.editBox 可能会起作用(假设您在正确的上下文中调用 getExchangeRate(即 x.getExchangeRate()))。

And how can it use _editBox?

因为变量在作用域内。

It could be much later when the function gets called.

这并不重要

how do I know it will still be valid?

您可以控制它何时以及是否被覆盖。

关于javascript - 无法在 JavaScript 对象的函数中使用自己的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22974938/

相关文章:

javascript - 在 Cypress 的测试之间保留动态变量

javascript - 如何在 AngularJS 中添加/删除字符串数组

javascript - 将变量记录到控制台

javascript - 增加从 node.js 到外部系统的并行请求需要更多时间来响应

javascript - Wijmo 饼图对象引用错误?

javascript - 相同的 Url 但内容不同,为什么?

javascript - 快速计算和删除数组中重复项的方法

javascript - Onload 将 div 设置为可见?

Javascript - 添加两个 HashMap

javascript - Realm - 值不可转换为数字