在JavaScript中向“类”添加属性

在JavaScript中向“类”添加属性,javascript,class,prototype,Javascript,Class,Prototype,javascript中没有实际的类。但你必须用你得到的东西来工作 让我们以这个类为例: var example = function (string) { this._self = string; } 通过以上步骤,您可以执行以下操作: var ex = new example("Hello People."), display = ex._self; // returns "Hello People." 我认为通过使用example.prototype.newFun=funct

javascript中没有实际的类。但你必须用你得到的东西来工作

让我们以这个类为例:

var example = function (string) {
  this._self = string;
}
通过以上步骤,您可以执行以下操作:

var ex = new example("Hello People."),
    display = ex._self; // returns "Hello People."
我认为通过使用example.prototype.newFun=function{}之类的东西,可以为该类添加一个新属性。但它在我的代码中不起作用

以下是我正在测试的完整代码:

var example = function (string) {
  this._self = string;//public, var like, storage
}

var showExample = new example("Hello People");
showExample.prototype.display = function (a) {//code stops here, with error "Uncaught TypeError: Cannot set property 'display' of undefined"
  return a;
}
console.log(showExample._self);
console.log(showExample.display("Bye"));

我要做的是将display函数作为公共函数添加到示例函数中。我可能做错了什么。

因为没有showExample的原型-它只是示例的一个实例。尝试这样做:example.prototype.display=函数a{},它会工作的

下面是关于JavaScript类的更多信息:

我喜欢处理这个问题的方式以及类在中的实现方式


因为showExample没有原型——它只是一个示例的实例。尝试这样做:example.prototype.display=函数a{},它会工作的

下面是关于JavaScript类的更多信息:

我喜欢处理这个问题的方式以及类在中的实现方式


您尝试将方法添加到示例showExample实例的原型中。该实例没有原型。试试example.prototype.display=函数{/*…*/};换句话说,将该方法添加到showExample的构造函数原型中,即example,然后再次检查。之后,示例的所有实例都“知道”显示方法,或者用您的话来说,显示对所有实例都是“公开的”


可以使用showExample.display=function{/*…*/};将该方法添加到实例中;。使用该方法,只有showExample知道显示方法的原理。

您尝试将方法添加到示例showExample实例的原型中。该实例没有原型。试试example.prototype.display=函数{/*…*/};换句话说,将该方法添加到showExample的构造函数原型中,即example,然后再次检查。之后,示例的所有实例都“知道”显示方法,或者用您的话来说,显示对所有实例都是“公开的”


可以使用showExample.display=function{/*…*/};将该方法添加到实例中;。使用该方法,只有showExample知道显示方法。

拥有原型的不是对象,而是用于创建对象的函数:

var example = function (string) {
  this._self = string;
}

example.prototype.display = function (a) {
  return a;
};

拥有原型的不是对象,而是用于创建对象的函数:

var example = function (string) {
  this._self = string;
}

example.prototype.display = function (a) {
  return a;
};

在您的案例中,showExample是示例的对象

使用


在您的案例中,showExample是示例的对象

使用


您可以修改showExample的构造函数


您可以修改showExample的构造函数

showExample.constructor.prototype.display = function (a) {
  return a;
}