声明javascript对象的不同方式 - 区别?

时间:2014-01-23 12:57:48

标签: javascript object

我无法使用不同的方式声明js-objects,特别是在阅读knockout.js文档之后。他们似乎混合了所有可能的方式。这四种声明对象的方式之间有什么大的区别?

var object = new Object();
name.field = bla;
name.method = function() { bla };

var object = {
field : "bla",
method : function() { bla };
}

- >我猜这些是等价的,只是不同的符号。但在第二种情况下,你将如何传递参数?或者根本不可能?

在两个bwlo中:将它存储在变量中而不是将其存储在变量中(除了将对象传递给函数的方式之外)之间的区别是什么?

function object() {
this.field = "bla";
this.method = function() { bla };
}

otherfunction(new Object());

var myobject = function name() {
this.field = "bla";
this.method = function() { bla };
}

otherfunction(new myobject());
otherfunction(myobjet);

编辑:很抱歉再次询问,在建议的主题中没有看到另一个。

1 个答案:

答案 0 :(得分:1)

在第一个中你使用了新的声明:

  

new运算符创建一个用户定义的对象类型的实例,或者一个具有构造函数的内置对象类型的实例。

所以你可以创建你定义的任何函数的对象

var x = function() {};
new x();

第二件事是对象文字:

  

对象文字是一对零的或多对属性名称和对象的关联值的列表,用大括号({})括起来。

它始终是Object函数的一个实例。你为什么要在这里传递参数?您正在定义显式对象,此处无需传递参数。