javascript - 如何在调用函数的 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);
解决方案
您可以改用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);
推荐阅读
- scrapy - Scrapy 获取有关 SSL 证书的信息
- javascript - 子路由的延迟加载不会重定向到子路由
- c++ - 在成员变量模板初始化程序中从通用 lambda 查找静态成员名称 — 编译器错误?
- c# - 你如何使用 Lucene.Net 拼音搜索
- python - python中的单位根分位数自回归
- java - 如何从 AWS Lambda 在 AWS EC2 实例上执行 JAR
- javascript - 传递给函数的默认变量值会在 IE11 中中断脚本,但似乎不需要
- android - 带有阴影效果的滚动透明工具栏
- javascript - JavaScript 纯 CRUD 编辑功能 - 更新/编辑表格中的输入字段
- apache-kafka - 带有窗口的 Kafka Streams 拓扑不会触发状态更改