1

私はjavascriptプロトタイプに非常に慣れていません。だから私は以下が合法であり、常に機能するかどうか疑問に思っています:

function Obj(name) {
    this.name = name;
}
Obj.prototype.getName() {
   return this.name;
}

その後 :

var obj1 = new Obj("one");
var obj2 = new Obj("two");
alert(obj1.getName() + " " + obj2.getName());

「ワンツー」をもらえますか?これは単純な例ですが、このようなものは常にオブジェクトインスタンスを参照するのでしょうか、それともプロトタイプまたはイベントを意味するのでしょうか。ありがとう

4

2 に答える 2

0
// Setup Obj    
function Obj() {}
Obj.prototype.me = function () {return this;}

// Make some vars
var a = new Obj(), b = new Obj();

// find out what "this" is equal to
a.me() === a; // true
a.me() === b; // false
b.me() === a; // false
b.me() === b; // true
于 2012-09-14T01:51:25.380 に答える
0
var Obj = function(name) {
    this.name = name;
}

bj.prototype.getName = function( ) {
    return this.name; // this refers to Obj
}

var obj1 = new Obj('Jeff');
var obj2 = new Obj('Joe');

console.log(obj1.getName()); // Jeff
console.log(obj2.getName());​ // Joe

それを機能させることはできませんが、これは正常に機能します。これは、メソッドを呼び出しているオブジェクトを参照する必要があります。

これがフィドルです

于 2012-09-14T01:53:21.467 に答える