Javascript嵌套函数不起作用

时间:2015-02-05 11:35:49

标签: javascript javascript-objects

我不明白为什么这个功能不起作用,我把它传递给了foreach方法。

 var methods = {
            foreach: function(f){
                for(var i = 0; i <= this.x; i++){
                    f(i);
                }
            }
        };
        function test(x) {
           var t = Object.create(methods);
           t.x = x;
           return t;
        };
        var t = test(10);
        console.log(t.x); //10
        t.foreach(console.log()); //Uncaught TypeError: undefined is not a function

THX!

1 个答案:

答案 0 :(得分:1)

您正在传递调用console.log()的返回值,这不是一个函数。

您需要传递实际功能。

由于log仅适用于console的上下文,您不能只传递console.log,但您可以,例如:

 t.foreach(function (logthis) { console.log(logthis); });