国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

JavaScript中this的用法實例分析

2019-11-19 18:24:01
字體:
來源:轉載
供稿:網友

本文實例分析了JavaScript中this的用法。分享給大家供大家參考,具體如下:

一."this"公理

this關鍵字永遠都指向函數(方法)的所有者;

function fn1(){  this};fn1(); //this=>windowoDiv.onclick=fn1; //this=>oDivoDiv.onclick=function(){  this //this=>oDiv  fn1(); //this=>window}
<div onclick="this.fn1();"></div> //這種行間腳本的寫法現在非常罕見

這里的this指向div,fn1()里的this指向window

var it={  info:["騰訊","搜狐","新浪","百度"],  getinfo:function()  {    alert(this.info.join(","));  }};it.getinfo();

輸出:騰訊,搜狐,新浪,百度

二.函數賦值給變量時的"this"問題

var it={  info:["騰訊","搜狐","新浪","百度"],  getinfo:function()  {    alert(this.info.join(","));  }};var data=it.getinfo;data();

輸出:報錯,TypeError: this.info is undefined

代碼相當于

var data=function(){  alert(this.info.join(","));};data();

這里的this指向window,這里的data是被賦值,如果是var data=it.getinfo();那就是調用,結果還是騰訊,搜狐,新浪,百度。如果alert(this.it.info.join(","));結果還是騰訊,搜狐,新浪,百度。

var info=["QQ","sohu","sina","baidu"]var it={  info:["騰訊","搜狐","新浪","百度"],  getinfo:function()  {    alert(this.info.join(","));  }};var data=it.getinfo;data();

輸出:QQ,sohu,sina,baidu

三.作為對象方法調用時的"this"問題

function test(){  alert(this.x);}var o={};o.x=1;o.t=test;o.t();

輸出:1

四.作為構造函數調用時的"this"問題

var x=2;function test(){  this.x=1;}test();alert(x);

輸出:1

var x=2;function test(){  this.x=1;}var o=new test();alert(o.x);alert(x);

輸出:1,2

五.閉包中的"this"指向問題

var it={  info:["騰訊","搜狐","新浪","百度"],  getinfo:function()  {  function abc(){      alert(this.info.join(","));  }  abc();  }};it.getinfo();

輸出:報錯,TypeError: this.info is undefined

閉包中的this不能指向it

解決方法

var it={  info:["騰訊","搜狐","新浪","百度"],  getinfo:function()  {  var _this=this;  function abc(){      alert(_this.info.join(","));  }  abc();  }};it.getinfo();

優點:無論外部函數名字(it)怎么變,都能指向info

更多關于JavaScript相關內容可查看本站專題:《javascript面向對象入門教程》、《JavaScript中json操作技巧總結》、《JavaScript切換特效與技巧總結》、《JavaScript查找算法技巧總結》、《JavaScript錯誤與調試技巧總結》、《JavaScript數據結構與算法技巧總結》、《JavaScript遍歷算法與技巧總結》及《JavaScript數學運算用法總結

希望本文所述對大家JavaScript程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 峨眉山市| 余姚市| 临沭县| 南城县| 五家渠市| 松桃| 临邑县| 隆昌县| 老河口市| 乌审旗| 阳春市| 湖口县| 周至县| 林甸县| 中方县| 银川市| 高平市| 霍林郭勒市| 固安县| 永川市| 独山县| 青海省| 马关县| 四会市| 广河县| 宜章县| 浠水县| 五原县| 新宁县| 泗阳县| 泾阳县| 修水县| 花莲县| 潮州市| 施甸县| 石景山区| 西宁市| 林周县| 云南省| 安阳市| 上犹县|