簡體   English   中英

如何在對象構造函數的鍵值對中包含先前聲明的函數作為值?

[英]How do I include a previously declared function as a value in a key-value pair in an object constructor?

任務:

  1. 聲明一個名為myName的變量,該變量返回一個由兩個元素組成的數組,即名字和姓氏。

  2. 聲明一個名為join()的函數,它將以字符串形式返回兩個元素,每個元素之間有一個空格。

  3. 聲明一個函數createProfile,該函數應該將數組“名稱”作為輸入(???)。

  4. createProfile創建並返回帶有兩個鍵值對的對象。 鍵:名稱值:使用函數“ join()”和參數“名稱”變量返回全名的字符串,並用空格分隔

    key :電子郵件value :我的電子郵件(字符串)。

  5. 聲明一個名為myProfile的變量,並使用myName分配調用createProfile的結果。

問題出在步驟4。我相信我應該使用對象構造函數。 我不知道如何在對象構造函數的鍵值對中正確包含函數join()一個值。

到目前為止,這是我嘗試過的:


const myName = ["firstname", "lastname"];

function join(){
    document.write("Hello, my name is " + myName[0] + " " + myName[1] + ".");
};

join();


function createProfile(name, email){
    this.name = function(){
        return this.join();
    };
    this.email = email;
    return this;
}

let myProfile = new createProfile(name,"me@gmail.com");
console.log(myProfile);

預期結果:調用create profile應該記錄一個對象,該對象的我的全名是一個字符串,而我的電子郵件地址是一個字符串。

實際結果:

createProfile {name: ƒ, email: "hotcoffeehero@gmail.com"}
email: "hotcoffeehero@gmail.com"
name: ƒ ()
__proto__: Object

name的值是一個空函數。

如何將其顯示為字符串?

溫蓋島松

如果要使用邏輯,則需要使用下一個代碼修復該代碼

const myName = ["firstname", "lastname"];

function join(){
    //document.write("Hello, my name is " + myName[0] + " " + myName[1] + ".");
    return myName[0] + ' ' + myName[1] // You only return the values
};

join();


function createProfile(name, email){
    this.name = join(); // you call the function and assing to name
    this.email = email;
    return this;
}

const myProfile = new createProfile(name,"me@gmail.com");
console.log(myProfile);

但是有更好的方法來發展

暫無
暫無

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

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