Is there a way to call all functions inside an object in javascript?
本问题已经有最佳答案,请猛点这里访问。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | var imgs = { a: function(){ //... }, b: function(){ //... }, c: function(){ //... } }; var preloadImgs = function(){ imgs.a(); imgs.b(); imgs.c(); }; preloadImgs(); |
有没有一种方法可以自动预加载img,这样它就可以一次加载img中的所有方法,而不是我必须键入每个方法?
循环遍历imgs对象的所有值,如果imgs对象是函数,则调用它
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | var imgs = { a: function(){ console.log('a'); }, b: function(){ console.log('b'); }, c: function(){ console.log('c'); } }; var preloadImgs = function(){ Object.values(imgs).map(value => { if(typeof value === 'function') { value.call(); } }) }; preloadImgs(); |
。
使用
1 | Object.values( imgs ).forEach( s => s() ); |
演示
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | var imgs = { a: function(){ console.log("1"); }, b: function(){ console.log("2"); }, c: function(){ console.log("3"); } }; var preloadImgs = function(){ Object.values( imgs ).forEach( s => s() ); }; preloadImgs(); |
号
编辑
如果
1 2 3 | Object.values( imgs ) .filter( s => typeof s === 'function' ) //filter out values which are function .forEach( s => s() ); //execute those functions |