Javascript 使用参数调用 this.function()

Javascript calling this.function() with parameters

我目前正在使用 JS 进行开发,但我仍然对 JS 的 OOP 有疑问。 TBH 我真的不明白它是如何工作的,因为它看起来非常灵活,但在语法上仍然很烦人。

这就是我所拥有的:

function Object1(){

var x;
var y;

    Object1func1( param x, param y ){
        ///
    }
}

function Object2(){

var a;
var b;

   function Object2func1(){
    var obj = new Object1();
        obj.Object1func1( a, b );
        ///
    }
}

我在单个脚本中有多个 "objects",由函数定义,它们内部有函数,我需要用 args 调用它们,例如,我需要初始化一个将初始化另外 2 个的对象并调用自己的一些功能。我开始做这种语法:

function Object1(){
    //Var here

    this.function1 = function function1(){
         do stuff here/
    }

...
}

我为什么要这样做?因为我需要在当前对象的内部和外部调用这个函数,问题是,使用这个方法我不能从对象外部传递参数,而且我看到这是一种非常糟糕的编码方式,所以我在这里问你正确的方法。

比如在java里面,你定义一个class,他的函数就可以了,很简单,在JS里,我实在是不懂怎么弄。。。相当混乱。

我需要什么:

Object1(){

function1(arg a, arg b){}

}

function2(){
    function1( defaultA, defaultB );
}

OutsideObject(){
var obj = new Object1();

obj.function1(X,Y);
}

谢谢。

编辑:所以我用原型东西替换了我的主要对象。我设置了他所有的 var public,在 'constructor' 中使用 this.var,但是,我无法在任何 MyObject.Prototype.function() 中访问任何这些 this.var。它说它们是未定义的:/

编辑 2:我的问题似乎来自 "this",看起来它会自行改变,我如何坚持使用 class 变量而不是 'this' 相关的变量似乎?

编辑 3:对于 "absolute" 变量,你必须用 "var" 声明它们,甚至什么都不用声明,而不是 "this.var",我读过的所有文档都说区别在于隐私,它不是,它也是关于以相对或绝对的方式获取 var,就我而言,它因此让我陷入了几个小时。问题已解决。

要在构造函数的所有实例上创建一个方法,请将其设为构造函数原型的 属性。

正常定义函数表达式的参数。

function Object1(){
}

Object1.prototype.function1 = function function1 (x, y){
};

var obj = new Object1();
obj.function1(3,4);