[英]Setting Javascript Properties Multiple Times
我目前正在學習javascript,並且在多次設置屬性時遇到了這種相當奇怪的行為。 例如:
var duck = {feet: 1, feet: 2}
在跑步
show(duck)
我明白了
{feet:2}
這種行為有一些奇怪的javascript原因嗎? 為什么沒有拋出錯誤?
您不能在對象中具有多個同名屬性,但該語言允許它以靜默方式傳遞。 這是該語言的一個缺陷。 ECMAScript 5嚴格模式修復了,所以下面會拋出一個錯誤:
"use strict";
var duck = {feet: 1, feet: 2}
// SyntaxError: Duplicate data property in object literal not allowed in strict mode
我有點同意在這里拋出錯誤是有意義的。 我認為解析器只是將對象聲明擴展為一系列語句,因此它的任何部分實際上都是無效的。
duck.feet = 1;
duck.feet = 2;
@Blender:我猜show
是他的庫中的一個方法,它遍歷每個屬性並以其相關值打印出來。
非嚴格JavaScript允許對象包含具有相同名稱的多個屬性。 當多次使用相同的名稱時,僅使用最后一個聲明。 嚴格模式要求所有屬性名稱都是唯一的。
"use strict";
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.