0

JavaScriptでパラメーター化されたコンストラクターを宣言する方法?? JavaScriptでどのように達成できますか??

 public class A()
    {
     //variable declaration
     public A()
     {
      //do something
     }

     public A(int a)
     {
      //do something
     }

     public A(int a,int b)
     {
      //do something
     }
    }
4

3 に答える 3

1

JavaScriptは、引数定義に基づくオーバーロードをサポートしていません。

単一の関数を記述し、どの引数が受信されたかを確認します。

function A(a, b) {
    if (typeof a === "undefined") {
        // ...
    } else if (typeof b === "undefined") {
        // ...
    } else {
        // ...
    }
}
于 2013-02-21T11:12:28.393 に答える
1

JavaScript の任意の関数をコンストラクターにすることができます

function A(paramA, paramB) {
    this.paramA = paramA;
    this.paramB = paramB;

    //do something
}

A.prototype.method1 = function(){
    console.log(this)
    console.log('Inside method 1' + this.paramA)
}

var a = new A(1, {name: 'Name'});
console.log(a.paramA);
console.log(a.paramB.name)
a.method1()

すべてのインスタンス変数は、 を使用して作成できますthis.<variable-name>=<value>;。インスタンス メソッドは、コンストラクターのプロパティを
使用して作成できます。prototypefunction

コンストラクターについてもっと読むことができます
シンプルな「クラス」のインスタンス化
シンプルな JavaScript の継承

を使用してパラメーターが存在するかどうかを確認することもできます

if(paramB == undefined) {
    //do something if paramB is not defined
}
于 2013-02-21T11:10:59.613 に答える
0
var Class = function(methods) {   
    var klass = function() {    
        this.initialize.apply(this, arguments);          
    };  

    for (var property in methods) { 
       klass.prototype[property] = methods[property];
    }

    if (!klass.prototype.initialize) klass.prototype.initialize = function(){};      

    return klass;    
};
var Person = Class({ 
    initialize: function(name, age) {
        this.name = name;
        this.age  = age;
    },
    initialize: function(name, age, gender) {
        this.name = name;
        this.age  = age;
        this.gender = gender;
    }
}); 

var alice = new Person('Alice', 26);
var rizwan = new Person('riz', 26, 'm');
alert(alice.name + ' - alice'); //displays "Alice"
alert(rizwan.age + ' - rizwan'); //displays "26"

http://jsfiddle.net/5NPpR/ http://www.htmlgoodies.com/html5/tutorials/create-an-object-directional-javascript-class-constructor.html#fbid=OJ1MheBA5Xa

于 2013-02-21T11:27:27.563 に答える