簡體   English   中英

大括號在變量聲明中是什么意思?

[英]What do curly brackets mean in a variable declaration?

當包圍多對integer:string形式的integer:string時,大括號( {} )在變量聲明中做什么?

例如,它們在這里是什么意思?

char = {0:'(',3:') ',6:' - '};

在這種情況下,它來自以下電話號碼格式腳本:

function formatPhone(obj) {
    var numbers = obj.value.replace(/\D/g, ''),
    char = {0:'(',3:') ',6:' - '};
    obj.value = '';
    for (var i = 0; i < numbers.length; i++) {
        obj.value += (char[i]||'') + numbers[i];
    }
}

我相信定義char的那一行是導致它失敗的那一行。

這是一個Javascript對象。 最好縮進,如下所示:

char = {
    0: '(',
    3: ') ',
    6: ' - '
}

它說,你正在做與屬性的對象036組給定的值。 然后,使用char[i]訪問屬性,除非定義了屬性,否則返回null因此,對於除0、3和6之外的所有i ,它將默認為'' 對於0、3和6,它將采用相關的字符串。

好吧,我想我已經弄清楚了什么是“行不通的”,盡管我仍然需要您先解釋一下這意味着什么,然后才能確定。

這行:

obj.value += (char[i]||'') + numbers[i];

如果undefined numbers[i] ,並且僅針對i = 0、3或6定義numbers[i] ,則將在字符串中插入undefined 。將行更改為此:

obj.value += (char[i]||'') + (numbers[i]||'');

它應該工作。

它創建一個對象:

obj = {0:'(',3:') ',6:' - '};

您的對象中有兩個元素,它們的鍵分別為0、3和6。可以訪問它們obj [0],obj [3]和obj [6]

或者您可以像在示例中那樣循環訪問它們

那是一個Javascript對象。

除了使用構造函數創建對象之外,還可以使用對象初始化程序創建對象。 使用對象初始化程序有時被稱為使用文字符號創建對象。 “對象初始化程序”與C ++使用的術語一致。

使用對象初始化程序的對象的語法為:

 var obj = { property_1: value_1, // property_# may be an identifier... 2: value_2, // or a number... // ..., "property n": value_n }; // or a string 

其中obj是新對象的名稱,每個property_i是一個標識符(名稱,數字或字符串文字),每個value_i是一個表達式,其值已分配給property_i

本文的其余部分在此處提供

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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