Javascript 如何使变量在类的方法中可用?

Javascript 如何使变量在类的方法中可用?,javascript,Javascript,我为这个问题道歉,我刚刚开始学习Javascript 我有两种方法: Manager.prototype.filters = function () { var user = []; ... Manager.prototype.filters_main = function () { var user = []; ... 我需要使属性“user”可用于2个方法(filters,filters\u main)。这样

我为这个问题道歉,我刚刚开始学习Javascript

我有两种方法:

Manager.prototype.filters = function () {
         var user = [];
           ...

Manager.prototype.filters_main = function () {
         var user = [];
           ...
我需要使属性“user”可用于2个方法(filters,filters\u main)。这样他们就可以使用共享变量(user)。
如何编写?

管理器中定义变量
定义:

function Manager() {
    this.user = [];
}
现在,您应该能够在过滤器功能中使用它:

Manager.prototype.filters = function() {
    // Use it:
    if (this.user.indexOf(...) != -1) {
        ...
    }
};
然后,您可以继续正常操作:

var manager = new Manager();
manager.user = ["user1", "user2"];
var filters = manager.filters();
将其添加到正文中:

function Manager() { 
   this.user = []; 
}

Manager.prototype.filters = function () {
   alert(this.user)
}

var m = new Manager();
m.user = [11,22,33]
m.filters();

您必须理解这里基于原型的继承

var Manager = function() {
    this.user = [];
}

var manager = new Manager();
这些行将定义一个
Manager
构造函数并创建一个新对象。调用
新管理器()
时,会发生以下情况:

  • 将创建一个新的空对象:
    {}

  • 构造函数中的代码将使用此新的空对象作为
    this
    的值运行。因此,它将新对象(
    {}
    )的
    user
    属性设置为空数组

  • 新对象的
    \uuu proto\uu
    属性将设置为Manager.prototype的值。所以,这在您没有看到:
    manager.\uuuu proto\uuuu=manager.prototype
    的情况下发生

  • 然后,您希望使用继承在原型对象上定义新方法。请记住,原型是一个普通的JS对象。不是构造函数,而是对象。因此,从
    管理器
    函数创建的每个对象都将其
    \uuuu proto\uuu
    属性设置为同一个对象

    然后,开始在原型对象上定义新方法,如
    过滤器
    函数。稍后,当您调用
    manager.filters()
    时,它将首先为
    filters
    函数查找自己的属性,但找不到它。那么,它会去寻找它的原型属性,在那里它会找到它<代码>管理器
    随后将运行原型上定义的
    过滤器
    函数,但将自身(
    管理器
    )作为上下文,作为函数内部的

    因此,要在
    filters
    函数中使用
    user
    属性,只需执行以下操作:

    Manager.prototype.filters = function () {
         this.user = ...;
    }
    
    Manager.prototype.filters_main = function () {
         this.user = ...;
    }
    

    您将操作在构造对象时定义的相同的
    user
    属性。

    将其放在主体中:
    function Manager(){this.user=[];
    Between Manager.prototype….?我应该在prototype中编写什么?