new Object() 和对象文字表示法之间的区别
在 JavaScript 中创建对象可以通过两种方式完成:使用构造函数 -基于 new Object() 语法或对象文字表示法。虽然这两种方法似乎实现了相同的结果,但在向对象添加方法时存在显着差异。
对象文字表示法
当使用对象文字表示法时,方法是在每个单独的对象中定义,如果涉及大量对象或方法,可能会导致内存浪费。
function Obj(prop) { return { p: prop, sayHello: function() { alert(this.p); }, }; } const foo = new Obj("hello");
基于构造函数的语法
相反,使用new Object() 语法,方法在对象原型中定义并在所有对象实例之间共享,优化内存使用。
function Obj(prop) { this.p = prop; } Obj.prototype.sayHello = function() { alert(this.p); }; const foo = new Obj("hello");
使用对象原型的优点
通过利用基于构造函数的语法和对象原型,您可以获得以下优势:
以上是为什么在 JavaScript 中选择对象原型而不是对象文字表示法来定义方法?的详细内容。更多信息请关注PHP中文网其他相关文章!