javascript - 函数内对象内方法
问题描述
我正在尝试在函数内部的对象中编写一个方法。像这样:
function createMountain(name, continent, heightInMeters) {
var object = {
"name": name,
"continent": continent,
"heightInMeters": heightInMeters,
isHigherThan: function() {}
}
return object
}
var mountains = [];
var everest = createMountain("Everest", "Asia", 8849)
var montblanc = createMountain("Mont Blanc", "Europe", 4809)
var denali = createMountain("Denali", "North America", 6190)
mountains.push(everest, montblanc, denali)
该方法isHigherThan
应接受一个山对象作为参数,如果山高于方法中传递的山,则返回 true,否则返回 false。
everest.isHigherThan(denali) //true
montblanc.isHigherThan(everest) //false
我怎么能写这样的功能?我很挣扎,没有找到解决方案。它也应该没有 ES6。
先感谢您。
解决方案
解决方案
function createMountain(name, continent, heightInMeters) {
return {
name: name,
continent: continent,
heightInMeters: heightInMeters,
isHigherThan: function (mountain) {
return this.heightInMeters > mountain.heightInMeters;
},
};
}
// let is from es6
let everest = createMountain("Everest", "Asia", 8849);
let montblanc = createMountain("Mont Blanc", "Europe", 4809);
let denali = createMountain("Denali", "North America", 6190);
console.log(everest.isHigherThan(denali));
console.log(montblanc.isHigherThan(everest));
推荐阅读
- gradle - 导入 Gradle 多项目:IntelliJ IDEA 不分配文件夹类别
- python - 从自定义文件名中读取
- javascript - SpeechSynthesis 中的跨浏览器语音
- angular - textarea点击角度的输入验证
- python - 训练 CNN 时 For Loop 中断
- angular-slickgrid - 在 Angular-Slickgrid 中获取选定的行数据
- r - 使用函数 get() 以编程方式分配 quanteda docvars
- python.net - Python.Net 与我的应用程序一起分发:在线安装还是离线安装?
- react-native - 反应钩子表单设置默认值不起作用
- gradle - 空手道加特林:错误 io.gatling.app.Gatling$ - 运行崩溃,DataWriters 未正确初始化