声明JavaScript对象的不同方式 - 有何区别?

3

我在js对象声明方面遇到了困难,特别是在阅读knockout.js文档后。它们似乎混合使用了所有可能的方式。那么这四种声明对象的方式有什么重大区别呢?

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

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

--> 我猜这些是等价的,只是不同的表示法。但在第二种情况下,你如何传递参数?或者根本不可能吗?
下面两个问题:存储在变量中和不存储在变量中有什么区别(除了对象传递给函数的方式不同)?
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);

编辑:很抱歉再次提问,没有看到建议主题中的其他问题。


这段内容与IT技术无关。

1
你说的“如何传递参数”是什么意思? - basilikum
1个回答

1
在第一个例子中,您使用了new语句:

new操作符用于创建用户定义对象类型的实例或具有构造函数的内置对象类型之一。

因此,您可以创建任何您定义的函数的对象。
var x = function() {};
new x();

第二件事是对象字面量:
对象字面量是一组零个或多个属性名和与之关联的对象值对的列表,用花括号({})括起来。
它始终是Object函数的实例。为什么要在这里传递参数?您正在定义显式对象,这里不需要传递参数。

谢谢您的回复!我现在明白了关于传递参数的部分。 - user2791739

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接