JavaScript的this指針在不同情況下的應(yīng)用
標(biāo)簽:
JavaScript
最近看别人代码的时候,经常能见到JS中的this关键字,自己也是经常会用到,但是用的越多,反而越糊涂,所以打算整理一下,也加强下自己的记忆。
一、当函数作为一个对象的方法时,在函数中使用this,此时this指向这个对象。
var Student={
name:'Frank',
sayName:function(){
alert(this.name); //Frank
alert(this===Student); //true
}
}
Student.sayName();
二、
当函数作为构造函数使用时,在构造函数中使用this,则this指向的是通过构造函数创建出来的新的对象。
function Cat(name){
this.name=name;
}
var cat1=new Cat('Tom');
alert(cat1.name); //Tom
三、
在全局作用域中使用时,this就指向全局对象window。
var name='Frank';
alert(this.name); //Frank
alert(window.name); //Frank
alert(this===window); //true
四、
使用函数的call或者apply方法将this指向其他的作用域,可以重新定义函数的执行环境,即this的指向。
var obj1 = {
name: 'Tom',
getName: function() {
return this.name
}
}
var obj2 = {
name : 'Jack'
}
console.log(obj1.getName()) ;//Tom
console.log(obj1.getName.call(obj2)) //Jack
點擊查看更多內(nèi)容
12人點贊
評論
評論
共同學(xué)習(xí),寫下你的評論
評論加載中...
作者其他優(yōu)質(zhì)文章
正在加載中
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦