深入理解js中this的用法
this是js的一個(gè)關(guān)鍵字,隨著函數(shù)使用場(chǎng)合不同,this的值會(huì)發(fā)生變化。但是總有一個(gè)原則,那就是this指的是調(diào)用函數(shù)的那個(gè)對(duì)象。
1、純粹函數(shù)調(diào)用。
function test() {
this.x = 1;
alert(x);
}
test();
其實(shí)這里的this就是全局變量??聪旅娴睦泳湍芎芎玫睦斫馄鋵?shí)this就是全局對(duì)象Global。其實(shí)這里的this就是全局變量。看下面的例子就能很好的理解其實(shí)this就是全局對(duì)象Global。
var x = 1;
function test() {
alert(this.x);
}
test();//1
var x = 1;
function test() {
this.x = 0;
}
test();
alert(x);//0
2、作為方法調(diào)用,那么this就是指這個(gè)上級(jí)對(duì)象。
function test() {
alert(this.x);
}
var o = {};
o.x = 1;
o.m = test;
o.m(); //1
3、作為構(gòu)造函數(shù)調(diào)用。所謂構(gòu)造函數(shù),就是生成一個(gè)新的對(duì)象。這時(shí),這個(gè)this就是指這個(gè)對(duì)象。
function test() {
this.x = 1;
}
var o = new test();
alert(o.x);//1
4、apply調(diào)用
var x = 0;
function test() {
alert(this.x);
}
var o = {};
o.x = 1;
o.m = test;
o.m.apply(); //0
o.m.apply(o);//1
當(dāng)apply沒有參數(shù)時(shí),表示為全局對(duì)象。所以值為0。
以上這篇深入理解js中this的用法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
JavaScript 表單處理實(shí)現(xiàn)代碼
這篇文章主要介紹了JavaScript 表單處理實(shí)現(xiàn)代碼,需要的朋友可以參考下2015-04-04
JavaScript原生對(duì)象之Date對(duì)象的屬性和方法詳解
這篇文章主要介紹了JavaScript原生對(duì)象之Date對(duì)象的屬性和方法詳解,需要的朋友可以參考下2015-03-03
JavaScript字符串對(duì)象split方法入門實(shí)例(用于把字符串分割成數(shù)組)
這篇文章主要介紹了JavaScript字符串對(duì)象split方法入門實(shí)例,split方法用于把字符串分割成數(shù)組,需要的朋友可以參考下2014-10-10

