簡體   English   中英

在 JavaScript Object 中創建然后創建屬性的 function 有什么意義?

[英]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.

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