在控制台中调用prototype方法时,Chrome Web检查器会显示异常符号

时间:2014-02-24 10:21:05

标签: javascript google-chrome

所以我有一个名为“createGameObjectConstructor”的函数,它接受一个函数,一个原型将一个原型和一个方法添加到函数中然后返回函数。它可以像这样使用

Monster = createGameObjectConstructor(function () {
    this.evilness = 9001;

}, {
    eatHuman:function () {
        console.log('human consumed');
    }, type:'scary'
});

和“createGameObjectConstructor”看起来像这样

createGameObjectConstructor = (function () {

    var recent = function () { //every actual object constructor will share this method
        return (instance.length> 0) ? instance[instance.length - 1] :null;
    };


    return function (constructor, prototype) { //createGameObjectConstructor

        var instanceArray = new Array();

        constructor.prototype = prototype;

        return function (){ //actual object's constructor
            var instance = new constructor();
            instance.constructor = constructor;
            instanceArray.push();
            return instance;
        };

        f.recent = recent;

        return f;

    }

}());

但是当我在Chrome的控制台中调用Monster().eatHuman();时,它会返回未定义的函数,但旁边有一个奇怪的箭头,这是因为我奇怪的编码导致它过于评估代码还是什么?

The Arrow

这是一个小提琴http://jsfiddle.net/UZmL9/

1 个答案:

答案 0 :(得分:1)

这只是意味着函数的返回值undefined

如果找不到明确的return语句,则所有JavaScript函数return undefined by default

function foo(){
    console.log("Hi");
}
foo(); // you will get the same 'undefined'

但是

function foo(){
    console.log("Hi");
    return 5;
}
foo(); // you will get 5 with that arrow