Javascript使用参数

时间:2015-04-27 15:33:43

标签: javascript function syntax 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 );
        ///
    }
}

我有多个"对象"在由函数定义的单个脚本中,它们在其中具有函数,我需要使用args调用它们,例如,我需要初始化一个对象,该对象将初始化其他2并调用它们自己的一些函数。我开始做这种语法:

function Object1(){
    //Var here

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

...
}

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

在java中,例如,你只需要定义一个类,他的函数,这一切都很简单,在JS中,我真的不明白如何做到这一点......非常令人困惑。

我需要什么:

Object1(){

function1(arg a, arg b){}

}

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

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

obj.function1(X,Y);
}

谢谢你。

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

编辑2:我的问题似乎来自"这个",看起来它改变了自己,我怎么能坚持一个类变量而不是相对的东西呢?这个'好像?

编辑3:对于"绝对"变量你必须用" var"来声明它们。甚至没有,不是" this.var",我读过的所有文档都告诉我们差异是关于隐私,不是,它也是关于以相对或绝对方式获取var,在我的因为这个原因,我被困了好几个小时。问题解决了。

1 个答案:

答案 0 :(得分:0)

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

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

function Object1(){
}

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

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