Javascript模块导出调用所有函数

时间:2015-07-31 17:49:58

标签: javascript module export

有没有办法调用模块的所有功能而不是只选择每个功能?

例如:

bettermovies.js



module.exports={
    printAvatar: function(){
        console.log("Avatar");
    },

    printLord: function(){
        console.log("Lord of the Rings");
    },

    printGod: function(){
        console.log("God Of War");
    },
    favMovie: "Return of the King"
}




betterindex.js:



var movies=require('./bettermovies');
movies.printAvatar();
movies.printLord();
console.log(movies.favMovie);




我问的原因是因为如果我在.js中有一百个电影功能,那么手动完成所有操作并不具备调用所有功能的功能是非常繁琐的。这实际上引出了另一个问题,比如说你有100个这样的版画"电影"功能,你想要打印所有这些,除了其中3个,你会怎么做呢?

谢谢!

2 个答案:

答案 0 :(得分:0)

您可以在需要之后遍历电影对象。这样的事情应该有效:

for (var prop in movies) {
    // Verifies if the property is a function. If it is, the function is called
    if (movies[prop] instanceof Function) {
        movies[prop]();
    } else {
        console.log(movies[prop]);
    }
}

答案 1 :(得分:0)

我创建了jsfidde。以下代码可能会解决您的问题。代码迭代对象,如果变量是函数,则调用它。

var a = {
    printAvatar: function(){
        console.log("Avatar");
        $("body").append("Avatar <br/>");
    },

    printLord: function(){
        console.log("Lord of the Rings");
        $("body").append("Lord of the Rings <br/>");
    },

    printGod: function(){
        console.log("God Of War");
        $("body").append("God Of War <br/>");
    },
    favMovie: "Return of the King"
}

for(x in a){
    if(typeof a[x] == "function"){ // Only if function.
        a[x]();
    }
}