javascript原型方法没有得到结果

时间:2017-04-08 17:49:44

标签: javascript methods prototype javascript-objects

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

var dependar = new Person('Dependar',20,'Student');

现在我们已经创建了我们的构造函数。

我试图使用原型。

Person.prototype.city = 'Delhi';

我们已将新的var city附加到构造函数以及使用它创建的所有元素(var dependar)

dependar.city工作正常,它被分配到德里'

但是当我尝试使用原型

附加方法时
  Person.prototype.dob = function(){
         this.dob = 2017 - this.age;
    }

但是当我进入时 dependar.dob;

显示的功能不是结果

function (){
    this.dob = 2017 - this.age;
}

出了什么问题?请帮忙

2 个答案:

答案 0 :(得分:0)

当我输入dependar.dob时;它显示的是函数而不是结果。

<强>原因: 这是因为您已将其定义为:

Person.prototype.dob = function(){
         this.dob = 2017 - this.age;
    }

将(2017 - this.age)分配给this.dob。但dob未在函数中定义。

你能做什么:

直接返回值dob。

var Person = function(name, age, job) {
  this.name = name;
  this.age = age;
  this.job = job;

}

var dependar = new Person('Dependar', 20, 'Student');
Person.prototype.dob = function() {
  return (2017 - this.age);
}

console.log(dependar.dob());

答案 1 :(得分:0)

在控制台中,如果您输入dependar.dob,或者使用console.log(dependar.dob),则会得到您要求的内容 - dob的值,这是一个功能,所以它尽力显示该值的内容 - 函数源代码。

要获取执行函数所需的函数值,这意味着dependar.dob() - 请注意使用parens。那些导致函数执行。