如果函数调用被定义为var,如何调用它
How to invoke function call if it is defined as var?
我正在使用JQuery和JSON从服务器获取数据。我定义了getBooksDoneFunc
作为变量,因为我需要不仅能调用这个函数一次(当getBooks
完成时(。不幸的是,我不能从signInOK
内部将getBooksDoneFunc
称为window["getBooksDoneFunc"]();
。为什么?调用此函数的最佳方式是什么?
function getBooks(){ return $.getJSON( "bookstore.json" ); }
var getBooksDoneFunc = function(json) {
$.each(json.books, function(i, json){ .......... });
}
getBooks().done(getBooksDoneFunc);
function signInOK(){
window["getBooksDoneFunc"]();
}
PS。window["getBooksDoneFunc"]();
的想法取自SO答案
更新:
var booksJSON = {};
window["getBooksDoneFunc"](booksJSON);
CCD_ 7必须用参数来调用,然而对CCD_。signInOK
是在$(document).ready(function(){ });
外部定义的,但在其内部调用。
尝试:
function getBooks(){
return $.getJSON( "bookstore.json" );
}
window.getBooksDoneFunc = function(json) {
$.each(json.books, function(i, json){ .......... });
}
getBooks().done(getBooksDoneFunc);
$(document)ready(function() {
function signInOK(){
var booksJSON = {};
window.getBooksDoneFunc(booksJSON);
}
});
如果window["getBooksDoneFunc"]();
有效,那么getBooksDoneFunc()
也有效,使用window
的想法是当您想要访问全局函数,但不知道存储在变量中的函数名时。
在您的情况下,放入一个硬编码字符串是没有意义的,只是做getBooksDoneFunc()
是一样的,因为您已经在变量中存储了函数self(而不是函数名称的字符串(。
不起作用的是,如果变量不是全局的,请检查范围。
尽管我并不真正理解signInOK((函数,但我会以不同的方式来做这件事。它将如何接收"json"数据。我将重构getBooks函数,并重新思考signInOk函数。这里有一个开始:
function getBooks() {
$.getJSON("bookstore.json").done(function (json) {
getBooksDoneFunc(json);
});
}
var getBooksDoneFunc = function(json) {
$.each(json.books, function(i, json){ .......... });
};
...
getBooks();
function signInOK(){
getBooksDoneFunc("some json data");
}
相关文章:
- 如何使jQuery插件函数可调用以供独立使用,而不在集合上操作
- D3在一个调用中绘制不同的SVG形状,没有可见性
- 如何从Java/scala调用js美化程序
- 如何调用这个匿名 JavaScript 函数
- 如何从模块链中调用函数.导出到节点中
- 我需要从php调用javascript或jquery
- Chrome开发工具(如何知道我在调用哪个javascript对象)
- 单击按钮后如何逐个调用分区,上一个分区将隐藏
- 多个AJAX调用调用相同的成功函数不起作用
- 补间.js添加事件侦听器后不调用调用函数
- 使用函数调用调用 jQuery 弹出窗口
- 如何使用 jquery Ajax 调用调用类的方法
- jQuery从不为ajax调用调用.done()或.always()
- 使用angular js-ajax调用调用php-json服务文件
- 手动调用模块与使用browserify动态调用模块有何不同?
- 通过javascript调用调用jsp页面
- Angular Service可以在控制器中调用调用该服务的函数吗?
- 在jquery中从ajax调用调用Javascript函数
- 有没有一种安全的方法可以调用“调用”来调用 JavaScript 中的函数
- 在rails 3中,如何使用page.调用调用函数并向其传递多个参数