繁体   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