【问题标题】:JavaScript comparing values in OOP [closed]JavaScript比较OOP中的值[关闭]
【发布时间】:2022-06-13 14:27:41
【问题描述】:

我一直在研究 JavaScript 中的 OOP,但不知道如何比较作为参数给出的人员薪水。

pers1.compareSalary(pers2);

function person(name, job, salary) {
    this.name = name;
    this.job = job;
    this.salary = salary;

}

var person1 = new person("Mike","JavaScript-coder",5000);
var person2 = new person("Mia","Python-coder",1500);
var person3 = new person("Jackson","Teacher",1000);

function compareSalary() {

}

我想这样做,如果我将 person1.compareSalary(person2); 添加到代码中,它将比较第 1 个人和第 2 个人的薪水。但我似乎无法理解我是如何做到的可以这样做。

编辑: 我很久以前就想通了,如果有人需要它,我想发布答案。谢谢。

function Person (name, job, salary) {
    this.name = name;
    this.job = job;
    this.salary = salary;
}

Person.prototype.compareSalary = function (n) {
    
  if (this.salary > n.salary){

   var difference = this.salary-pers2.salary;
    
        console.log(this.name," earns ",difference , " more than", n.name);
    
      }else if(this.salary < n.salary){
    
        var minus = n.salary-this.salary;
    
        console.log(this.name, "earns ",minus,"less than",n.name);
    
      }else{
    
        console.log(this.name, "earns as much as ",n.name);
    
      }
    
}

var pers1 = new Person("Pete", "Python Coder", 5000);
var pers2 = new Person("Jack", "Java Coder", 1500);
var pers3 = new Person("John", "FrontEnd Developer", 1000);

pers1.compareSalary(pers2);
pers3.compareSalary(pers2);
pers3.compareSalary(pers3);

【问题讨论】:

  • 你是如何尝试解决这个问题的?
  • 是的,但我似乎无法理解如何进行比较。因为我不能只添加 if (person1.salary
  • 你为什么不能这样做?你能edit你的问题并说明它是如何不起作用的吗?
  • 我想知道如何让 person1.compareSalary(person2) 工作,因为如果我添加 if (person1.salary
  • 因为我真的很想学习这个,因为这已经困扰了我很多天了。我不得不跳过一些作业,因为我只是想不通,因为学校的理论页没用。

标签: javascript oop


【解决方案1】:

首先你可以使用 js 中的类...但是如果你仍然想使用函数,你需要将 compareSalary 添加到 person 的原型中强>。

person.prototype.compareSalary = function (otherPerson) {
  // your code here
};

function person(name, job, salary) {
  this.name = name;
  this.job = job;
  this.salary = salary;
}

person.prototype.compareSalary = function (otherPerson) {
  console.log(this, otherPerson);
};

var person1 = new person('Mike', 'JavaScript-coder', 5000);
var person2 = new person('Mia', 'Python-coder', 1500);
var person3 = new person('Jackson', 'Teacher', 1000);

person1.compareSalary(person2);

【讨论】:

    猜你喜欢
    • 2010-09-07
    • 1970-01-01
    • 2013-01-29
    • 1970-01-01
    • 2019-09-29
    • 1970-01-01
    • 1970-01-01
    • 2019-03-13
    • 2017-07-05
    相关资源
    最近更新 更多