我遇到了以下奇怪的行为:
在加载期间:
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>
答案 0 :(得分:0)
好吧,当你打电话
var a = function () {}
您正在宣布一项功能
但是用
代替function b(){}
var a = new b();
alert(typeof a);
你正在实现B函数,它作为一个对象,这就是为什么返回对象,问候。
当你使用new关键字时。