在页面加载期间实例化匿名类

时间:2013-10-13 00:48:43

标签: javascript

我遇到了以下奇怪的行为:

在加载期间:

var a = new function() {};
alert(typeof a);          //outputs function instead of object

在页面加载后执行完全相同的代码会产生对象而不是函数,如预期的那样。

以下是返回对象,但如果可能的话我想避免使用它:

function b(){}
var a = new b();
alert(typeof a);         //outputs object

我在这里遗漏了什么吗?为什么第一个例子没有给我一个对象引用而不是一个函数?

经过测试:

Firefox 24

Chrome 28

IE 10

修改

事实证明,它不是浏览器问题,而是Brackets实时预览的错误。

<!DOCTYPE html>
<html>
    <head>
        <script>
            var a = new function() {};
            alert(typeof a); //should output 'object' but outputs 'function' in Brackets
        </script>
    </head>
    <body>
    </body>
</html>

1 个答案:

答案 0 :(得分:0)

好吧,当你打电话

var a = function () {}

您正在宣布一项功能

但是用

代替
function b(){}
var a = new b();
alert(typeof a);

你正在实现B函数,它作为一个对象,这就是为什么返回对象,问候。

当你使用new关键字时。