我无法使用不同的方式声明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);
编辑:很抱歉再次询问,在建议的主题中没有看到另一个。
答案 0 :(得分:1)
在第一个中你使用了新的声明:
new运算符创建一个用户定义的对象类型的实例,或者一个具有构造函数的内置对象类型的实例。
所以你可以创建你定义的任何函数的对象
var x = function() {};
new x();
第二件事是对象文字:
对象文字是一对零的或多对属性名称和对象的关联值的列表,用大括号({})括起来。
它始终是Object函数的一个实例。你为什么要在这里传递参数?您正在定义显式对象,此处无需传递参数。