[英]What is the point of creating a function in JavaScript Object that then creates property?
(對不起,我的英語不好)
我是 JS 新手,目前在對象/方法部分!
我剛剛寫了這段代碼:
var jason = {
fname: 'jason',
lname: 'roy',
yearBorn: 2001,
CalcAge: function () {
this.age = 2020 - this.yearBorn;
}
};
jason.CalcAge();
console.log(jason.age);
控制台日志的預期結果是 19,這正是我得到的。 但這不是我的問題。
我的問題是,為了創建一個年齡屬性而經歷如此漫長的過程有什么意義?
盡你所能,要打印出“年齡:19”,我們首先需要寫:
jason.CalcAge();
接着,
console.log(jason.age);
大家不覺得有點沒用嗎?
就像,我很確定您可以簡單地創建一個年齡屬性並在那里編寫 function 來做與我們在這里所做的相同的事情,但是通過調用 function 的額外步驟,然后控制台記錄它生成的屬性。
再一次,對不起我的英語不好,如果你們沒有得到我,請告訴我!
Ciao,一個 object 使用像你這樣的方法:
var jason = {
fname: 'jason',
lname: 'roy',
yearBorn: 2001,
CalcAge: function () {
this.age = 2020 - this.yearBorn;
}
};
jason.CalcAge();
console.log(jason.age);
和 object 沒有這樣的方法:
var jason = {
fname: 'jason',
lname: 'roy',
yearBorn: 2001,
age: 19
};
console.log(jason.age);
看起來相似但完全不同。 為什么? 靈活性。 讓我稍微改寫一下你的 object:
var jason = {
fname: 'jason',
lname: 'roy',
yearBorn: 2001,
CalcAge: function (currYear) {
this.age = currYear - this.yearBorn;
}
};
jason.CalcAge(2020);
console.log(jason.age);
如您所見,現在我將當前年份作為 function CalcAge
的參數傳遞。 兩種解決方案有什么區別? 第一個是 static( age: 19
),明年將不再有效。 第二個允許您計算您想要的任何年份的年齡(不僅是當前年份)。 因此,您的解決方案(稍作修改)變得更加靈活,可以永遠使用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.