如何一次触发多个名称空间函数
How to fire multiple namespace functions at once?
是否有可能在一次调用中执行名称空间的所有功能?
Exp:
var myApp = {
e : $('.js-box'),
addStyle : function(){
myApp.e.css('height','200');
},
warn : function(){
alert('WOOOOOoooOO');
}
};
myApp.addStyle();
myApp.warn();
上面的代码可以正常工作…
我们可以用一次调用来触发addStyle和warn函数吗?
我试过/想过的:
var myApp = {
workAll : function(){
e : $('.js-box'),
addStyle : function(){
myApp.e.css('height','200');
},
warn : function(){
alert('WOOOOOoooOO');
}
}
};
myApp.workAll();
this不起任何作用…我怎么能做那样的事?
Live try: http://jsfiddle.net/C7JJM/82/
提前感谢!
如果不让每个函数都自调用,自动调用所有函数看起来很困难。但是使用自定义调用者,这是非常可能的…只要在你的第一个正在工作的函数中添加另一个名为workAll的函数。
var myApp = {
e : $('.js-box'),
addStyle : function(){
console.log("Add style called");
myApp.e.css('height','200');
},
warn : function(){
alert('WOOOOOoooOO!!!');
},
runAll : function(){
this.addStyle(); //call AddStyle
this.warn(); //call Warn
}
};
myApp.runAll();
此处演示:
http://jsfiddle.net/C7JJM/84/试试这个
//http://stackoverflow.com/questions/5999998/how-can-i-check-if-a-javascript-variable-is-function-type
function isFunction(functionToCheck) {
var getType = {};
return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';
}
function executeAll(ns){
if(ns){
for (property in ns) {
if (ns.hasOwnProperty(property)) {
var p = ns[property];
if (p != null && isFunction(p)) {
p();
}
}
}
}
}
var myApp = {
e : $('.js-box'),
addStyle : function(){
myApp.e.css('height','200');
},
warn : function(){
alert('WOOOOOoooOO');
}
};
executeAll(myApp)
但是要注意传递给函数
的实参http://jsfiddle.net/s8ng608f/1/var myApp = {
e : $('.js-box'),
addStyle : function(){
myApp.e.css('height','400');
},
warn : function(){
alert('WOOOOOoooOO');
} ,
addstyleall:function(){this.addStyle();this.warn();}
};
myApp.addstyleall();
相关文章:
- 命名空间与自调用函数
- 从html文件中的脚本标记调用非全局命名空间函数
- jQuery 函数的全局命名空间问题
- 调用命名空间的公共函数(coffeescript)时出现问题
- 需要一个文件,然后使用一个函数,而不显式地将所需文件用作命名空间
- Javascript对象/名称空间-如何访问从嵌套函数添加的属性(包括示例)
- 从对象命名空间环境中的嵌套setInterval调用嵌套函数
- 如何在不污染全局命名空间的情况下共享常用的jquery函数
- Firefox Bookmarklet:向全局命名空间公开函数
- JavaScript风格:我应该将这些东西中的哪些作为参数传递给我的命名空间函数
- 将参数传递给回调函数而不更改方法(Siesta Testing命名空间)
- Javascript:正常函数的命名空间封装
- 从另一个命名空间重新定义(第三方)ClojureScript函数
- 如何在 Javascript 中添加命名空间函数以单击
- 如何一次触发多个名称空间函数
- Javascript 命名空间 - 函数之间的变量交换
- 我可以使用jquery调用命名空间函数吗?
- 为事件侦听器使用名称空间函数
- 未定义导出命名空间函数
- 传递'响应'或& # 39;数据# 39;AJAX返回到名称空间函数