繁体   English   中英

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

[英]Using “this” keyword in a JavaScript prototype method?

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

我会得到“一二”。 我知道这是一个简单的示例,但是类似这样的事情总是引用对象实例,还是意味着原型或事件。 谢谢

// 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
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

我无法使它正常工作,但是效果很好。 这应该引用您正在调用方法的对象。

这是小提琴

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM