我试图理解以下代码:
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/