我试图在一个对象中编写一个方法,这个对象在一个函数中。如下所示:
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。
提前谢谢你。
发布于 2021-01-15 01:32:29
解决方案
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));
https://stackoverflow.com/questions/65723472
复制相似问题