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
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 回答
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 回答