gpt4 book ai didi

javascript - `new Object()` 和对象字面量表示法有什么区别?

转载 作者:IT老高 更新时间:2023-10-28 13:15:05 25 4
gpt4 key购买 nike

这种基于构造函数的创建对象的语法有什么区别:

person = new Object()

...和这个字面语法:

person = {
property1 : "Hello"
};

看起来两者都做同样的事情,尽管 JSLint 更喜欢你使用对象文字表示法。

哪个更好,为什么?

最佳答案

在您的示例中,没有方法的简单对象没有区别。但是,当您开始向对象添加方法时,会有很大的不同。

字面意思:

function Obj( prop ) { 
return {
p : prop,
sayHello : function(){ alert(this.p); },
};
}

原型(prototype)方式:

function Obj( prop ) { 
this.p = prop;
}
Obj.prototype.sayHello = function(){alert(this.p);};

这两种方式都允许像这样创建 Obj 的实例:

var foo = new Obj( "hello" ); 

但是,使用文字方式,您在对象的每个实例中携带 sayHello 方法的副本。而在原型(prototype)方式中,方法是在对象原型(prototype)中定义的,并在所有对象实例之间共享。如果你有很多对象或很多方法,字面量的方式会导致相当大的内存浪费。

关于javascript - `new Object()` 和对象字面量表示法有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4597926/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com