簡體   English   中英

多次設置Javascript屬性

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM