/**
* this
* js中的this具有多态性
* 谁调用,this就是谁
*/
//第一种方式
function Person(){
alert(this);
}
Person();//[object Window],因为是window对象调用的
//第二种方式
function Student(){
}
Student.s = Person;
Student.s();//function Student(){},因为是Student对象调用的
//第三种方式
var jsonObj = {
getPerson : Person
};
jsonObj.getPerson();//[object Object],因为是json对象调用的
/**
* 利用call或apply方法改变this指向,call和apply用法基本一致,至于不同之处,不在此处研究
*/
Person.call(Student);//function Student(){}
Person.apply(Student);//function Student(){}
/**
* 如果存在回调函数的情况
* 哪个调用callback,this就代表哪个对象
*/
function testCallback(callback){
callback.apply(this);//[object Window]
callback.call(Student);//function Student(){}
}
testCallback(function(){
alert(this);
});
JavaScript加强之this
最新推荐文章于 2022-09-03 09:11:13 发布