簡體   English   中英

在javascript中設置對象的默認值

[英]Set the default value for the object in javascript

我有一個名為addAlert的函數,該函數接受兩個參數。

此函數的第一個參數是字符串,而此函數的第二個參數是對象。 該對象具有statuspositionalign這三個屬性。

當我未設置此參數的任何屬性時,我想設置一個默認值。

addAlert(stringValue,valueObject) {
    //Set the default values for the valueObject
}

您可以使用默認屬性創建一個默認對象,並使用Object.assign()這樣:

 function addAlert(stringValue, valueObject) { const defaultObj = { status: "default status", position: "default position", align: "default align" }; valueObject = Object.assign({}, defaultObj, valueObject) console.log(valueObject) } addAlert('', { status: "status" }) addAlert('', { position: "position", align: "align" }) addAlert('') // valueObject will be undefined 
 .as-console-wrapper { max-height: 100% !important; top: 0; } 

您可以如下設置參數默認值:

addAlert(stringValue = 'default string',valueObject = {}) {
    //Set the default values for the valueObject
}

有關更多信息,請訪問Default_parameters

最好的方法就是給函數調用提供默認值:

addAlert(stringValue = 'default',valueObject = 'default') {
    //Set the default values for the valueObject
}

現在,如果要為stringObject.status提供默認值,則有兩個選項:檢查它們是否未定義,然后設置為它們提供默認值:

addAlert(stringValue,valueObject) {
    if (valueObject.status == undefined) {
       valueObject.status = 'default';
    }
}

否則,您將傳遞三個不同的字段,且它們全部都是單個的。

addAlert(stringValue,valueObject.status, etc..) {
    //Set the default values for the valueObject
}

希望這可以幫助! :)

您可以通過以下方式自行在參數列表中分配默認值。

    addAlert = (stringValue="defaultString",valueObject={status:"", position:"", align:""})=> {
        console.log(stringValue, valueObject)
    }

您可以使用Object.assign創建具有默認值的對象:

 const defaults = { a: 1, b: 2, c: 3 } const obj1 = { a: 11 } const obj2 = { a: 11, c: 33} const obj3 = { a: 11, b: 22, c: 33 } const newObj1 = Object.assign({}, defaults, obj1); const newObj2 = Object.assign({}, defaults, obj2); const newObj3 = Object.assign({}, defaults, obj3); console.log(newObj1); console.log(newObj2); console.log(newObj3); 

另外,您可以使用傳播語法執行相同的操作:

 const defaults = { a: 1, b: 2, c: 3 } const obj1 = { a: 11 } const obj2 = { a: 11, c: 33} const obj3 = { a: 11, b: 22, c: 33 } const newObj1 = { ...defaults, ...obj1}; const newObj2 = { ...defaults, ...obj2}; const newObj3 = { ...defaults, ...obj3}; console.log(newObj1); console.log(newObj2); console.log(newObj3); 

您可以使用以下任一設置默認值:

addAlert(stringValue,valueObject) {
    const defaults = { status: "INFO", position: "TOP": align: "LEFT" };
    const settings = Object.assign({}, defaults, valueObj);
    /* use settings in the code */
}

要么

addAlert(stringValue,valueObject) {
    const defaults = { status: "INFO", position: "TOP": align: "LEFT" };
    const settings = { ...defaults, ...valueObj };
    /* use settings in the code */
}

暫無
暫無

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

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