日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
JavaScript類和繼承:this屬性

this屬性表示當(dāng)前對(duì)象,如果在全局作用范圍內(nèi)使用this,則指代當(dāng)前頁面對(duì)象window; 如果在函數(shù)中使用this,則this指代什么是根據(jù)運(yùn)行時(shí)此函數(shù)在什么對(duì)象上被調(diào)用。 我們還可以使用apply和call兩個(gè)全局方法來改變函數(shù)中this的具體指向。

先看一個(gè)在全局作用范圍內(nèi)使用this的例子:

 
 
 
  1. < script type="text/javascript"> 
  2.     console.log(this === window);  // true  
  3.     console.log(window.alert === this.alert);  // true  
  4.     console.log(this.parseInt("021", 10));  // 10  
  5. < /script> 

函數(shù)中的this屬性是在運(yùn)行時(shí)決定的,而不是函數(shù)定義時(shí),如下:

 
 
 
  1. // 定義一個(gè)全局函數(shù)  
  2. function foo() {  
  3.     console.log(this.fruit);  
  4. }  
  5. // 定義一個(gè)全局變量,等價(jià)于window.fruit = "apple";  
  6. var fruit = "apple";  
  7. // 此時(shí)函數(shù)foo中this指向window對(duì)象  
  8. // 這種調(diào)用方式和window.foo();是完全等價(jià)的  
  9. foo();  // "apple"  
  10.  
  11. // 自定義一個(gè)對(duì)象,并將此對(duì)象的屬性foo指向全局函數(shù)foo  
  12. var pack = {  
  13.     fruit: "orange",  
  14.     foo: foo  
  15. };  
  16. // 此時(shí)函數(shù)foo中this指向window.pack對(duì)象  
  17. pack.foo(); // "orange"  
  18.  

全局函數(shù)apply和call可以用來改變函數(shù)中this屬性的指向,如下:

 
 
 
  1. // 定義一個(gè)全局函數(shù)  
  2.  function foo() {  
  3.      console.log(this.fruit);  
  4.  }  
  5.    
  6.  // 定義一個(gè)全局變量  
  7.  var fruit = "apple";  
  8.  // 自定義一個(gè)對(duì)象  
  9.  var pack = {  
  10.      fruit: "orange" 
  11.  };  
  12.    
  13.  // 等價(jià)于window.foo();  
  14.  foo.apply(window);  // "apple"  
  15.  // 此時(shí)foo中的this === pack  
  16.  foo.apply(pack);    // "orange"  
  17.   

注:apply和call兩個(gè)函數(shù)的作用相同,唯一的區(qū)別是兩個(gè)函數(shù)的參數(shù)定義不同。

因?yàn)樵贘avaScript中函數(shù)也是對(duì)象,所以我們可以看到如下有趣的例子:

 
 
 
  1. // 定義一個(gè)全局函數(shù)  
  2. function foo() {  
  3.     if (this === window) {  
  4.         console.log("this is window.");  
  5.     }  
  6. }  
  7.  
  8. // 函數(shù)foo也是對(duì)象,所以可以定義foo的屬性boo為一個(gè)函數(shù)  
  9. foo.boo = function() {  
  10.     if (this === foo) {  
  11.         console.log("this is foo.");  
  12.     } else if (this === window) {  
  13.         console.log("this is window.");  
  14.     }  
  15. };  
  16. // 等價(jià)于window.foo();  
  17. foo();  // this is window.  
  18.  
  19. // 可以看到函數(shù)中this的指向調(diào)用函數(shù)的對(duì)象  
  20. foo.boo();  // this is foo.  
  21.  
  22. // 使用apply改變函數(shù)中this的指向  
  23. foo.boo.apply(window);  // this is window.  

文章名稱:JavaScript類和繼承:this屬性
網(wǎng)頁路徑:http://m.5511xx.com/article/cdejisp.html