Javascript函数奇怪的行为

时间:2017-01-27 23:04:12

标签: javascript function

我对javascript中的函数如何工作有一些疑问。

案例1:

function myFunction(){
    var _instance = this;

    _instance.show = function() {
        return "hi";
    }

    return function(){ return "hello"; };
}

var t2 = new myFunction();
alert(t2()); //this will show hello
alert(t2.show()); //this will cause error t2.show is not a function

案例2:

function myFunction(){
    var _instance = this;

    _instance.show = function() {
        return "hi";
    }

    return 5;
}

var t2 = new myFunction();
alert(t2.show()); //this will show hi
alert(t2());//this will cause error t2 is not a function

在案例1中,我理解它返回了匿名函数。这就是为什么我可以调用t2(),而不是t2.show

在第2种情况下,我希望它返回一个数字5,但它返回了一个myFunction实例。这就是为什么我可以调用t2.show(),而不是t2()。

这很奇怪。可以解释为什么它表现得那样吗?

感谢。

0 个答案:

没有答案