有效的对象构造函数

时间:2010-07-28 07:37:42

标签: javascript

以下哪些是有效的对象构造函数?

1) var m = function(){}
2) m = function(){}
3) m.prototype.constructor = function(){}

3 个答案:

答案 0 :(得分:1)

您忘记了var m = {};

这称为对象文字。

答案 1 :(得分:1)

它们似乎都是声明空函数的有效语句,并将其分配给不同的变量。

Javascript中的每个函数都是一个对象本身(或f.prototype不起作用)和一个潜在的对象构造函数。可以使用new Thingy语法(或者在您的示例中为new m)调用任何函数。或者它可以正常调用 - new唯一的特殊功能就是将this设置为从f.prototype派生的对象。

新创建的函数有一个prototype属性,其中包含一个新创建的对象({}),除了指向该函数的隐藏constructor属性外,它没有任何属性(它是一个循环参考,实际上)

应该是这样的:

var m = function(){};
m.prototype.constructor == m;

答案 2 :(得分:0)

1)var m = function(){}

2)m = function(){}

几乎相同,除了第一个创建本地范围的函数,第二个 - 全局。并且为了创建一个对象,你可以

var obj = new m();