在JavaScript原型方法中使用“this”关键字?

时间:2012-09-14 01:38:45

标签: javascript prototype

我是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());

我会得到“一二”吗?我知道这是一个简单的例子,但像这样的东西总是引用对象实例,或者这意味着原型或事件。感谢

2 个答案:

答案 0 :(得分: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

答案 1 :(得分: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

我不能让它工作,但这很好。这应该引用你调用方法的对象。

Here is a Fiddle