首页 > 解决方案 > 如何在调用函数的 javascript 对象中使用此参数?

问题描述

我正在尝试calcAge()在 javascript 对象中调用一个函数。calcAge()函数需要一个参数birthYr。如果我使用calcAge(1998)这是工作。但我希望这个birthYr 参数是该对象自己的元素,但这是显示未定义。我怎样才能做到这一点?我也可以使用该函数的返回值来获取 person 对象retiredIn 元素吗?为什么人员对象总是将retiredIn 元素显示为函数?我想把它作为一个函数输出。这个怎么做?

我试试,

function calcAge(birthYr) {
  return 2020 - birthYr;
}
var person = {
  birthYear: 1998,
  age: calcAge(this.birthYear), //This is Showing Undefined
  retiredIn: function () {
    return 65 - this.age; //So this returns a NaN
  },
  name: "Monir",
  job: "Teacher"
};
console.log(person.birthYear); //This is Ok when i am trying to call it from outside!

console.log(person);
在此处输入图像描述

标签: javascript

解决方案


您可以改用getter函数。

function calcAge(birthYr) {
  return 2020 - birthYr;
}
var person = {
  birthYear: 1998,
  get age() {
    return calcAge(this.birthYear)
  },
  retiredIn: function() {
    return 65 - this.age;
  },
  name: "Monir",
  job: "Teacher"
};
console.log(person.birthYear); //This is Ok when i am trying to call it from outside!

console.log(person);


推荐阅读