新的差异是什么? Object// 和字面符号对象?
基于构造函数的语法之间创建对象的差异是什么:
...
而这个文字语法:
虽然,似乎都这样做了 JSLint 喜欢使用对象字面符号。
哪一个更好,为什么?
person = new Object//
...
而这个文字语法:
person = {
property1 : "Hello"
};
虽然,似乎都这样做了 JSLint 喜欢使用对象字面符号。
哪一个更好,为什么?
没有找到相关结果
已邀请:
11 个回复
窦买办
赞同来自:
但是,当您开始向对象添加方法时,存在很大差异。
字面上地:
原型方法:
两种方法都允许您创建实例
, 类似于这个:
但是,在文字方式的帮助下,您可以传输方法的副本
在您对象的每个实例中。 使用原型方法时,该方法在对象原型中定义并由对象的所有实例共享。
如果您有很多对象或许多方法,则文字方法可能导致相当大的内存损耗。
诸葛浮云
赞同来自:
和
为它添加属性。 但文字指定在源代码中取得了更少的空间。 他清楚地认识到发生了什么,因此使用
, 你真的只拨打更多和 /理论上,如果没有由发动机优化 JavaScript/ 您执行不必要的函数调用。
这些
从技术上讲不一样。 第一个只需创建一个对象。 第二个创建它并为该属性分配。 为了使第一个相同,您需要第二步来创建和分配属性。
"something unusual", 有人可以做,这将是一个阴影或默认约会
global:
在那里面
非常不寻常
案子
将失败但是
将工作。
在实践中,没有理由使用
反而
/如果只有你没有做出这个非常不寻常的事情/.
董宝中
赞同来自:
我没有找到任何表明存在的东西 – 然后这两个之间的基本区别在幕后行为 /如果我错了,请纠正我,我想知道/. 但是,第二种方法 /使用对象字母表示法/ 提供了几个优点。
他更短 /10 要准确的人物/
更容易,结构才能在飞行中创建对象
如果有些人意外地过分了,那就没关系了
考虑一个包含元素名称的新对象 TelNo. 使用新的约定 Object//, 我们可以如下创建它:
功能
http://it.toolbox.com/blogs/th ... 18471
JavaScript 允许我们随时以这种方式创建新成员,我们实现了他们的意图。 但是,这种方法不是非常结构或封装的。 如果我们想在创建时指定会员,则该怎么做,而不依赖于属性 expando 创造后预约?
这是对象字面符号可以有所帮助:
在这里,我们在代码的一行中取得了相同的效果和明显较少数量的字符。
可以在上述用于构建物体的方法的进一步讨论:
http://www.javascriptkit.com/j ... shtml
最后,搬到了物体的白痴怎么样? 你真的认为这是不可能的吗? 出色地,
http://jsfiddle.net/Pdsr2/
证明相反。 对象字面符号的使用可以防止我们进入这个嘲笑者的泥浆。
/经过
http://www.jameswiseman.com/bl ... tion/
/ /
冰洋
赞同来自:
请注意,这是以下内容的扩展:
https://coderoad.ru/7375120/
我的结果如下:
因此,很明显 {} 和 [] 比使用更快 new 创建空 objects/arrays.
石油百科
赞同来自:
使用
允许您传输另一个对象。 显而易见的结果是新创建的对象将在同一链路上安装。 这是一个示例代码:
使用不限于对象 OOP 对象。 其他类型也可以转移到它。 该功能将相应设置类型。 例如,如果我们给它一个整数 1, 然后为我们创建对象类型 number.
使用上述方法创建的对象 /
/, 如果该属性添加到它,它将转换为对象的类型。
如果对象是对象类的副本,我们可以添加没有类型转换的属性。
知食
赞同来自:
设计师的基础
" 使用操作员 "
new
". 这与使用语法创建对象的情况相同 "
object literal
". 但 "
设计
" 使用操作员创建的对象 "
new
", 当你想到时令人难以上很有用 "
prototype继承
". 您无法维护使用使用文字语法创建的对象的继承链。 但是你可以创造
功能设计师
, 将属性和方法附加到其原型。 然后,如果将此设计器函数分配给使用运算符的任何变量 "
new
", 它将返回对该构造函数的原型附加的所有方法和属性的对象。
以下是使用设计器功能创建对象的示例 /请参阅下面的代码的说明/:
现在,您可以通过创建函数的实例来创建尽可能多的对象。 Person construction, 他们都继承了她 fullname//.
笔记:
关键词 "
this
" 将在设计器功能中引用空对象,每当您从使用运算符创建一个新对象时 "
new
", 它会自动返回包含与关键字关联的所有属性和方法的对象 "
this
". 这些对象肯定会继承与之相关的方法和属性
原型
设计师的功能 Person /这种方法的主要优点是什么/.
顺便说一下,如果要使用语法获取相同的功能 "
object literal
", 你必须创造 fullname// 在所有对象中,如下所示:
最后,如果你现在问为什么我必须使用这种方法
设计师的功能
而不是接近
对象
:
*** 原型继承允许您创建简单的继承链,这可能非常有用和强大。
*** 它可以保存内存,继承在设计者功能的原型中定义的常规方法和属性。 否则,您必须在所有对象中一次又一次地复制它们。
我希望它有意义。
八刀丁二
赞同来自:
与对象设计者相比,使用文字的另一个原因是缺乏行动领域的解决方案。 由于您可以创建具有相同名称的本地设计者,因此口译员需要查找来自呼叫站点的一个区域。 Object// 只要他找到全球对象设计师。
快网
赞同来自:
.
这是因为编译器在括号中混淆
并认为是
- 它是一种设计
https://developer.mozilla.org/ ... label
; 逗号的点是可选的,所以它不会抱怨它。
如果向对象添加另一个属性,则在最后,它将出错。
冰洋
赞同来自:
我推出了相同的代码 @rjloura 在我的 OSX High Sierra 10.13.6 node 版本 10.13.0, 以下是结果
君笑尘
赞同来自:
由于以下代码无效:
郭文康
赞同来自:
只需持有一份副本,并且
将举行 10 千份。