如何在javascript对象构造函数中调用自原型函数

如何在javascript对象构造函数中调用自原型函数,javascript,Javascript,为什么我的人在调用一个self方法时不说“你好”?如何解决这个问题 var Person = (function () { function Person() { this.prototype.say(); } Person.prototype.say = function() { alert("hello"); } return Person; })(); var person = new Person(); 要在当前对象上调用函数,您不应该使用原

为什么我的人在调用一个self方法时不说“你好”?如何解决这个问题

var Person = (function () {

  function Person() {
    this.prototype.say();
  }

  Person.prototype.say = function() {
    alert("hello");
  }

  return Person;
})();

var person = new Person();

要在
当前对象上调用函数,您不应该使用
原型
,只需调用它(
this.say()

要了解有关javascript中OOP的更多信息,您可以阅读

关于
继承
原型链

来自@FelixKling的好消息

引用的对象
没有
原型
属性。只有函数具有原型属性


要在
当前对象上调用函数,您不应该使用
原型
,只需调用它(
this.say()

要了解有关javascript中OOP的更多信息,您可以阅读

关于
继承
原型链

来自@FelixKling的好消息

引用的对象
没有
原型
属性。只有函数具有原型属性


isvforall的解决方案很好

关键是“原型”定义了Person()构造函数中正在“构造”的对象上可用的函数,称为“this”

原型是使用Person()构造的所有对象的共享基础定义。在Person()构造函数和其他原型方法中,实例本身被“this”引用


请参阅等文档以供参考。

isvforall的解决方案很好

关键是“原型”定义了Person()构造函数中正在“构造”的对象上可用的函数,称为“this”

原型是使用Person()构造的所有对象的共享基础定义。在Person()构造函数和其他原型方法中,实例本身被“this”引用



请参阅文档,如以供参考。

我在fiddler上试用过,但似乎不起作用@user310291我已更新了代码谢谢,现在可以了。你能进一步解释为什么你的工作而不是我的吗?我正在重新学习javascript OOP。@user310291:此
引用的对象
没有
原型
属性。只有函数具有
原型
属性。该属性的值将成为此
的值的原型。如果您想了解原型是如何工作的,我建议您阅读。@FelixKling good link,我正在阅读它。我在fiddler上试过,但似乎不起作用@user310291我已经更新了代码谢谢,现在它可以工作了。你能进一步解释为什么你的工作而不是我的吗?我正在重新学习javascript OOP。@user310291:此
引用的对象
没有
原型
属性。只有函数具有
原型
属性。该属性的值将成为此
的值的原型。如果您想了解原型是如何工作的,我建议您阅读。@FelixKling good link,我正在阅读。内部和外部
Person
变量不要使用相同的名称。@Barmar为什么?这是一种非常常见的做法。因为您对分配给哪个
人的原型感到困惑。您想分配给外部的
人员。prototype
,而是分配给内部人员。@Barmar
返回人员它们是一样的。它被分配给“内部”人员的原型,然后返回并分配给“外部”人员。他们在使用IIFE。不要对内部和外部
Person
变量使用相同的名称。@Barmar为什么?这是一种非常常见的做法。因为您对分配给哪个
人的原型感到困惑。您想分配给外部的
人员。prototype
,而是分配给内部人员。@Barmar
返回人员它们是一样的。它被分配给“内部”人员的原型,然后返回并分配给“外部”人员。他们用的是生活。
var Person = (function() {
    function Person() {
        this.say();
    }

    Person.prototype.say = function() {
      alert("hello");
    }
    return Person;
})();

var person = new Person();