Javascript对象初始化,哪种方法是最好的?
对象初始化:Javascript对象初始化,哪种方法是最好的?,javascript,oop,object,Javascript,Oop,Object,对象初始化: var myObject = {}; 及 为什么最后一个被视为反模式 谢谢我不确定新对象()是否真的属于“反模式”,但是{}通常是首选,它既简洁又灵活 当您编写JavaScript时,您希望它以简短结尾…如果它在编写时也能简洁易懂,如下所示: var myObject = { key: "value" }; …这样你就能两全其美。此外,在对象中创建对象时,例如: var myObject = { subObj: { key: "value" } }; …然后您可以看到它比可选
var myObject = {};
及
为什么最后一个被视为反模式
谢谢我不确定
新对象()
是否真的属于“反模式”,但是{}
通常是首选,它既简洁又灵活
当您编写JavaScript时,您希望它以简短结尾…如果它在编写时也能简洁易懂,如下所示:
var myObject = { key: "value" };
…这样你就能两全其美。此外,在对象中创建对象时,例如:
var myObject = { subObj: { key: "value" } };
…然后您可以看到它比可选的
new Object()
语法可读性好得多。由于数组构造函数存在问题,通常仍然使用文本{}
,而不是对象新对象中的构造函数 您应该始终更喜欢文本而不是构造函数
这与您的问题无关,但这里有一个数组示例new Array()
如果您不知道它是如何工作的,乍一看可能会令人困惑:
var a = [5,6];
var b = [5];
两者都创建长度分别为2和1的数组。但是考虑一下
var a = new Array(5,6);
var b = new Array(5);
第一个创建一个长度为2的数组,包含元素5和6,
最后一个创建一个长度为5的空数组
所以你看,使用文字符号避免了这个陷阱
此外,始终使用文字符号是一致的。当您创建一个字符串时,您也会编写var t=“Hello world”
,而不是var t=new string(“Hello world”)
几乎总是这样,是的
我认为“一个人应该总是喜欢这个”这样的说法有点过于笼统,总是有例外。对象文字几乎总是首选,但当您尝试克隆复杂的对象集时,该怎么办??或者尝试实例化
var a = new Array(5,6);
var b = new Array(5);
if (typeof Object.create !== 'function') {
Object.create = function (o) {
function F() {}
F.prototype = o;
return new F();
};
}
newObject = Object.create(oldObject);