S.ui.createpulldown = function() {
function someName(){
}
someName() // gets called
}
someName() // does not get called, when outside because of scope issue.
我想在s.ui.createpulldown
函数之外调用此函数。是否有可能,我必须对function someName()
进行哪些更改
答案 0 :(得分:3)
您必须将该函数分配给在所需范围内可见的变量:
//...
var someName;
S.ui.createpulldown = function() {
someName = function(){
}
someName() // gets called
}
someName(); // gets called also
//...
或者如果您希望它是一个全局变量(在所有范围内都可见),您可以将其固定到窗口对象:
window.someName = function(){};
请注意,这仅在执行S.ui.createpulldown
函数(thx,pimvdb)后才有效。
答案 1 :(得分:3)
这是一个范围问题。您无法访问somefunction
,因为它是createPullDown
的本地变量,就像以下示例中的i
一样
function pulldown(){
for(var i=0; i<n; i++){ ... }
}
i; //can't use "i" here!
如果您希望somename
在函数外部可见,则需要在外部声明它,或将其传递给外部可见的人或设置外部可见对象的属性;
var someFunction;
var someObj = {};
S.ui.createpulldown = function() {
function someName(){
}
someFunction = someName;
someObj.func = someName;
}
S.ui.createpulldown();
someFunction();
someObj.func();
答案 2 :(得分:0)
将somename
移到定义它的函数之外。如果要在多个位置使用它,请将其放在命名空间的相应部分。
答案 3 :(得分:0)
您无法在someName()
函数之外调用函数s.ui.createpulldown
。