Javascript 如何一次启动多个命名空间函数?
是否可以通过一次调用执行命名空间的所有函数 经验: 它与上面的代码一起正常工作 我们可以通过一次调用启动addStyle和warn函数吗 我的尝试/想法:Javascript 如何一次启动多个命名空间函数?,javascript,jquery,javascript-namespaces,Javascript,Jquery,Javascript Namespaces,是否可以通过一次调用执行命名空间的所有函数 经验: 它与上面的代码一起正常工作 我们可以通过一次调用启动addStyle和warn函数吗 我的尝试/想法: var myApp = { workAll : function(){ e : $('.js-box'), addStyle : function(){ myApp.e.css('height','200'); }, warn : function(){
var myApp = {
workAll : function(){
e : $('.js-box'),
addStyle : function(){
myApp.e.css('height','200');
},
warn : function(){
alert('WOOOOOoooOO');
}
}
};
myApp.workAll();
这没用。。我怎么能做那样的事
现场试用:
提前谢谢你 如果不让每个函数自行调用,自动调用所有函数看起来很困难。但是使用自定义调用者,这几乎是可能的。。只需在第一个正在工作的函数中添加另一个名为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://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)
但要注意传递给函数的参数
我需要等5分钟:)
//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)
var myApp = {
e : $('.js-box'),
addStyle : function(){
myApp.e.css('height','400');
},
warn : function(){
alert('WOOOOOoooOO');
} ,
addstyleall:function(){this.addStyle();this.warn();}
};
myApp.addstyleall();