[英]How do I include a previously declared function as a value in a key-value pair in an object constructor?
任務:
聲明一個名為myName的變量,該變量返回一個由兩個元素組成的數組,即名字和姓氏。
聲明一個名為join()的函數,它將以字符串形式返回兩個元素,每個元素之間有一個空格。
聲明一個函數createProfile,該函數應該將數組“名稱”作為輸入(???)。
createProfile創建並返回帶有兩個鍵值對的對象。 鍵:名稱值:使用函數“ join()”和參數“名稱”變量返回全名的字符串,並用空格分隔
key
:電子郵件value
:我的電子郵件(字符串)。
聲明一個名為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.