【问题标题】:Method inside object inside function函数内对象内方法
【发布时间】:2021-04-19 17:41:55
【问题描述】:

我正在尝试在函数内部的对象中编写方法。像这样:

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。

提前谢谢你。

【问题讨论】:

  • 你有什么问题?使用this 表示第一座山峰,并使用参数变量表示第二座山峰。
  • 欢迎来到 Stack Overflow! How to ask homework question

标签: javascript object methods


【解决方案1】:

解决方案

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));

【讨论】:

  • 感谢您的回答。如果不使用花括号作为参数,我将如何编写方法?我想我还没有研究过。
  • @marbobby13 如果你想要完整的对象,那么你可以删除花括号,这取决于你的使用情况
猜你喜欢
  • 1970-01-01
  • 2021-08-14
  • 1970-01-01
  • 2020-11-29
  • 2018-03-17
  • 2020-10-10
  • 2012-05-09
  • 2017-12-20
相关资源
最近更新 更多