4

私はjavascriptが初めてで、いくつかの基本に行き詰まっているところから始めました。オブジェクトのプロトタイプを作成してから、作成されたオブジェクトを配列で参照し、それらのメソッドにアクセスしようとしていますが、私はどこかで間違っています。誰かがこれを手伝ってくれますか。私がしていることはここに示されています:-

function Obj(n){
    var name=n;
}
Obj.prototype.disp = function(){
    alert(this.name);
};
var l1=new Obj("one");
var l2=new Obj("two");
var lessons=[l1,l2];
//lessons[0].disp();
//alert(lessons[0].name);

しかし、これらの方法はどれもうまくいかないようです.... :(

4

3 に答える 3

6

問題はコンストラクターにあります。パラメーターをフィールド変数ではなくローカル変数に割り当てているため、次のように変更します。

function Obj(n){
    this.name=n;
}

お役に立てれば

于 2013-07-29T13:55:26.280 に答える
1

これを使って:

 function Obj(n){
        this.name=n;
    }

理由:

var name=n;との違いthis.name=n;

変数名=n;

で宣言された変数はvar、コンストラクター関数に対してローカルです。オブジェクト内の何らかのメソッドで使用されている場合にのみ、コンストラクター呼び出しを超えて存続します

this.name=n;

これはオブジェクトのプロパティであり、オブジェクトが使用されているかどうかに関係なく、オブジェクトが存続する限り存続します。

例: thisJavaScript で

于 2013-07-29T14:10:24.550 に答える