【问题标题】:javascript prototype method not getting resultjavascript原型方法没有得到结果
【发布时间】:2017-09-04 00:52:50
【问题描述】:
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 工作正常,它被分配到 'Delhi'

但是当我尝试使用原型附加方法时

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

但是当我进入 依赖.dob;

显示的是函数而不是结果

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

出了什么问题?请帮忙

【问题讨论】:

  • 您需要调用该方法...或使用getter。
  • 这和ES6无关?!

标签: javascript methods prototype javascript-objects


【解决方案1】:

当我输入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());

【讨论】:

  • 感谢它的工作!当我们输入 console.log(dependar.dob); 时我很好奇。它显示了我们分配的功能,但是当我们输入 console.log(dependar.dob());它返回值。我可以知道原因吗?
  • 很高兴为您提供帮助:)
  • 使用 () 调用函数。
【解决方案2】:

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

要获得函数值,您需要执行函数,这意味着dependar.dob()——注意括号的使用。这些会导致函数执行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多