我是 javascript 的新手,我有一个我无法解决的问题。
一开始我有以下代码,并且工作得很好
function foo(){
var load_b = new Array();
load_b = b();
}
function a() {
var files = document.getElementById("images").files;
return files;
}
function b(){
var get_a = a.call(get_a);
return get_a;
}
现在我正在尝试创建一个 API,问题是当我执行 var get_a = a.call(get_a);
或 var get_a = a();
,我得到一个:
Uncaught ReferenceError: a is not defined(…).
我尝试了很多从 b 调用 a 的不同方法,但总是出错。目前我的代码看起来像这样。你们有什么想法吗?
function foo(){
var new_api = new my_api();
var load_b = new Array();
load_b = new_api.b();
}
var my_api = function(){
return {
a : function a() {
var files = document.getElementById("images").files;
return files;
},
b : function b() {
var get_a = a();
return get_a;
}
}
}
最佳答案
您需要使用this
来告诉脚本在当前范围内而不是全局范围内查找函数:
var get_a = this.a();
作为次要的一点,这个语法有点多余:
a : function a() {
你不需要第二次提到“a”:
a : function() {
会起作用。
关于javascript - 从另一个函数调用函数 - Javascript API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40345720/