【发布时间】:2016-01-10 17:59:22
【问题描述】:
我有这样的结构:
var obj = {
first: function(callback)
{
/* some code */
var foo = function() // i want to invoke this by callback
{
/* some code*/
};
if (callback) callback();
},
second: function()
{
/* some code */
var bar = function()
{
/*some code */
};
bar();
obj.first.foo(); // i want to invoke foo(), when bar() finishes it's job
}
}
obj.first();
obj.second();
当我尝试通过回调调用 foo() 时,我得到 Uncaught ReferenceError: foo is not defined
我在理解 JavaScript 作用域方面存在问题。当我完全处于其他函数中时,如何调用嵌套在外部函数中的内部函数?
【问题讨论】:
-
你不能。这是一个内部函数。
-
这是因为在调用
first之前未定义foo。通过简单地访问first属性,foo没有被定义。如果您拨打first,然后拨打foo,它应该可以工作。编辑:实际上再三考虑,我认为foo的范围不允许在first之外调用它 -
哦,我忘了-我在整个
obj下面调用first()。所以这不是问题,我认为 -
你的回调是第二个吗?
-
O'boy -> jsfiddle.net/seytdacq
标签: javascript function object callback