Javascript this关键字详解(摘自Javascript语言精粹一书)
2010-05-06 11:51
579 查看
在javascript的函数里可以使用一个this关键字,在不同情况下,它所指代的东西有所不同。
1.方法调用模式
当一个函数被当做某对象的方法调用时,this代表该对象自己
2.函数调用模式
当一个函数并非一个对象的属性而被调用时,this被绑定到全局对象(即全局变量window),就算这个函数是某个方法的子函数也一样。
3.构造器调用模式
当一个函数被当做对象的构造器调用时,this指向要被创建的那个新对象
4.apply调用模式
在javascript中函数也是对象,每个函数都有一个apply方法,此方法允许我们用指定的this调用函数
1.方法调用模式
当一个函数被当做某对象的方法调用时,this代表该对象自己
var person = { name : '张三', talk : function(){ alert(this.name+' 正在和某人聊天'); //此处this指向了对像person } } person.talk(); //张三 正在和某人聊天
2.函数调用模式
当一个函数并非一个对象的属性而被调用时,this被绑定到全局对象(即全局变量window),就算这个函数是某个方法的子函数也一样。
window.name = 'the window'; function getName(){ alert(this.name); } getName(); //"the window"
window.name = 'the window'; var person = { name : '张三', alertName : function(){ function getPersonName(){ return this.name; } alert(getPersonName()); } } person.alertName(); //弹出“the window”而不是“张三”
3.构造器调用模式
当一个函数被当做对象的构造器调用时,this指向要被创建的那个新对象
function Person(name){ this.name = name; //this指向变量zhangsan } Person.prototype.getName = function(){ alert(this.name); } zhangsan = new Person('张三'); zhangsan.getName(); //张三
4.apply调用模式
在javascript中函数也是对象,每个函数都有一个apply方法,此方法允许我们用指定的this调用函数
var zhangsan = { name:'张三', getName:function(){ return(this.name); } } var lisi = { name:'李四' } var name1 = zhangsan.getName(); //张三 var name2 = zhangsan.getName.apply(lisi); //李四
相关文章推荐
- JavaScript中的this关键字使用详解
- JAVASCRIPT this关键字详解
- Javascript中this关键字详解
- JavaScript中this关键字详解
- JavaScript中this关键字使用方法详解
- 详解JavaScript中this关键字的用法
- JavaScript中this关键字使用方法详解
- JavaScript中this关键字使用方法详解2
- Javascript中this关键字详解
- Javascript中this关键字详解
- Javascript中this关键字详解
- 【JavaScript】this关键字详解
- Javascript中this关键字详解
- javascript中的this关键字详解 -- 写的太好了
- Javascript中this关键字详解
- JavaScript中this关键字使用方法详解
- JavaScript中this关键字使用方法详解
- JavaScript中关于this关键字的详解
- Javascript中this关键字详解
- Javascript中this关键字详解