如何调用对象内的函数

时间:2016-07-23 10:58:52

标签: javascript

我刚刚开始学习一周前的Javascript,而且我遇到了一些绊脚石。在提供的链接中,我无论出于何种原因都无法调用对象内部的函数。我有什么想法我做错了吗?任何建议都会很棒。

Javascript code

3 个答案:

答案 0 :(得分:2)

您正在调用该函数,但函数返回undefined。请注意thistestObjthis == testObj中在不同的上下文中调用的含义不同,因此this.word未定义。

也许这fiddle可以提供帮助。

答案 1 :(得分:0)

var testObj = {
   bar: function(){
console.log(this.word)
}
}

当您致电testObj.bar时 这里指的是testObj,testObj没有属性词

var testObj = {
   bar: function(){
console.log(this.word)
}.bind(this)
}

使用.bind(this)或.bind(window)

答案 2 :(得分:0)

因为范围已经改变。

  

在JavaScript中,范围是指代码的当前上下文。范围可以是全局或本地定义的。理解JavaScript范围是编写防弹代码和成为更好的开发人员的关键。您将了解变量/函数的可访问位置,能够更改代码上下文的范围,并能够编写更快,更易维护的代码,以及更快地进行调试。

所以正确的代码是:

var that = this;
var testObject = { bar: function() { return that.word }}

在您的解决方案中,"这个"是"窗口"宾语。所以你也可以这样编码:

var testObject = { bar: function() { return window.word }}