运行时的 Java 脚本修改函数
Java script modify function at run time
在这里输入代码我有以下代码
function a(){alert("a");}
我想创建一个函数 b 作为
function b(){alert("a"); alert("b");}
我的方法类似于
var b = a + alert("b");
这当然是行不通的。但我想知道是否有某种库支持这一点。
编辑:也许我需要描述我的场景,以便更清楚地了解我想要实现的目标。
我正在使用异步.js库来处理多个异步调用。我的代码看起来像
var values = {};
...
function all() {
var allDfd = $.Deferred();
async.parallel(
[function (callback) {
remoteCall(function (result) {
values.v1 = result;
callback(null, 'one');
});
},
function (callback) {
remoteCall(function (result) {
values.v2 = result;
callback(null, "two");
});
},
function (callback) {
remoteCall(function (result) {
values.v3 = result;
callback(null, "three");
});
}], function (err, results) {
allDfd.resolve();
});
return allDfd.promise();
}
显然,有很多重复的代码困扰着我。所以我的想法是创建一个函数 asyncCall 来执行样板任务。这个想法是
var values = {};
...
function all() {
var allDfd = $.Deferred();
function getAsyncCall (func, innerCallback, callback) {
return function asyncCall(func, innnerCallback, callback){
func(innerCallback + callback(null)); // combine innerCallBack and callback code
}
}
async.parallel(
[getAsyncCall(remoteCall, function(result){values.v1=result;},callback),
getAsyncCall(remoteCall, function(result){values.v2=result;},callback),
getAsyncCall(remoteCall, function(result){values.v3=result;},callback),
], function (err, results) {
allDfd.resolve();
});
return allDfd.promise();
}
评论的行是我在思考的。我正在尝试创建一个结合内部和外部回调的新函数。
你可以做
var b = function() { a(); alert('b'); }
你可以
这样写:
var a=function(){alert("a");}
var b=function(){a(); alert("b");}
更进一步,你甚至可以编写一个完整的函数组合函数:
function compose( functions ) {
return function(){
for(var i=0; i!=functions.length; ++i) {
functions[i]();
}
};
}
var c=compose( [a, function(){ alert("b"); }] );
(在 http://jsfiddle.net/xtofl/Pdrge/的工作中看到它)
相关文章:
- 使用 JQuery 修改函数写入文档的数据
- 如何修改函数内部的全局变量
- Javascript-修改函数或从字符串中计算函数
- 修改函数以从类外部访问私有变量
- 修改函数中的javascript变量
- 直接修改函数有多危险
- 运行时的 Java 脚本修改函数
- Javascript - 修改函数内的全局变量
- Javascript:修改函数以动态创建表
- 修改函数以计算到新的一年,而不是返回值 12/33/2014
- 修改函数以使用 html 类而不是 id
- JavaScript中最简单的自修改函数
- 实现JQuery Scrollbox-修改函数-不确定如何实现
- 如何在循环中创建新变量的同时修改函数参数
- 当函数的属性函数被调用时,是否可以修改函数本身
- 修改函数内部的JavaScript对象,如果出现错误,则返回原始对象
- 访问和修改函数内外的变量
- 通过参数修改函数内部的全局变量
- JavaScript修改函数参数和使用函数
- 修改函数以显示最大窗口高度减去20%