如何在js中正确使用该方法?

时间:2013-06-14 01:18:47

标签: javascript

<script>
function Person(gender) {
  this.gender = gender;
}

Person.prototype.sayGender = function()
{
  alert(this.gender);
};

var person1 = new Person('Male');
var genderTeller = person1.sayGender;
genderTeller(); 
</script>

问题:

显示'undefined'。脚本有什么问题?

2 个答案:

答案 0 :(得分:2)

您需要在person1

的范围内调用它

genderTell.call(person1);

答案 1 :(得分:0)

埃文是对的。调用该函数时,范围为window。你需要在这个人身上打电话。当您检索函数时,您只获得函数,而不是范围。

这也适用:

function Person(gender) {
    this.gender = gender;
}

Person.prototype.sayGender = function () {
    alert(this.gender);
};

var person1 = new Person('Male');
person1.sayGender(); // <-- calling the function ON "person1" directly

FIDDLE