javascript - 非常基本的对象原型(prototype)不知道为什么不工作

标签 javascript

我不确定为什么这不起作用..

function Employee(vacation, takenAlready) {
  this.vacation_days_per_year = vacation;
  this.vacation_days_taken = takenAlready;
}

Employee.prototype.sally = function(){return this.vacation_days_per_year - this.vacation_days_taken};

console.log(sally(20, 5));

最佳答案

它不起作用,因为您实际上从未创建过 Employee 实例。您所做的只是创建一个“类”并赋予它一些属性,其中一个是名为 sally 的函数。

需要使用new Employee创建一个对象实例,然后调用它的sally方法。

var joe = new Employee(20, 5);
console.log(joe.sally());

不过,我认为您并不是真的想将方法命名为 sally,您可能希望将对象命名为那样。这可能是您想要的:

function Employee(vacation, takenAlready) {
  this.vacation_days_per_year = vacation;
  this.vacation_days_taken = takenAlready;
}

Employee.prototype.vacation_days_left = function(){
    return this.vacation_days_per_year - this.vacation_days_taken
};

var sally = new Employee(20, 5);
console.log(sally.vacation_days_left());

关于javascript - 非常基本的对象原型(prototype)不知道为什么不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33924778/

相关文章:

javascript - UI 中的 PrettyPrinting JSON

javascript - 我如何设计一个网页来显示服务器需要很长时间才能生成的数据?

javascript - 如何将带有 URL 的文本作为参数安全地传递给 CodeIgniter Controller ?

javascript - ExtJS 5.1 - 在厨房水槽中实现中心布局示例?

在对象中分配为属性值的字符串上的 JavaScript 字符串插值

javascript - 如何计算字符串中的某些字符

javascript - 动态生成内容时jQuery获取被点击元素的属性

javascript - 如何使用 Javascript Regex 获取值

javascript - onClick javascript 不工作

javascript - 如何使用 Javascript/jQuery 将用户带到新页面以及一些变量,而不会导致 URI Too Large 错误?