Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在js中正确使用该方法? 职能人员(性别){ 这个。性别=性别; } Person.prototype.sayGender=函数() { 警惕(这是性别); }; var person1=新人(“男性”); var genderTeller=person1.sayGender; genderTeller();_Javascript - Fatal编程技术网

Javascript 如何在js中正确使用该方法? 职能人员(性别){ 这个。性别=性别; } Person.prototype.sayGender=函数() { 警惕(这是性别); }; var person1=新人(“男性”); var genderTeller=person1.sayGender; genderTeller();

Javascript 如何在js中正确使用该方法? 职能人员(性别){ 这个。性别=性别; } Person.prototype.sayGender=函数() { 警惕(这是性别); }; var person1=新人(“男性”); var genderTeller=person1.sayGender; genderTeller();,javascript,Javascript,问题: 它显示“未定义”。脚本有什么问题?您需要在person1 genderTell.call(person1)埃文是对的。调用函数时,作用域为窗口。你需要打电话给那个人。当您像这样检索函数时,您只得到函数,而不是范围 相反,这也起作用: <script> function Person(gender) { this.gender = gender; } Person.prototype.sayGender = function() { alert(this.gender

问题:


它显示“未定义”。脚本有什么问题?

您需要在
person1


genderTell.call(person1)

埃文是对的。调用函数时,作用域为
窗口
。你需要打电话给那个人。当您像这样检索函数时,您只得到函数,而不是范围

相反,这也起作用:

<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>
职能人员(性别){
这个。性别=性别;
}
Person.prototype.sayGender=函数(){
警惕(这是性别);
};
var person1=新人(“男性”);
人1.说性别()//
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