日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

javascript中的this

發布時間:2025/5/22 javascript 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 javascript中的this 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

s中的this總是讓人,是js眾所周知的坑之一。
總結一下,this的坑分為5種。
1.全局代碼中的this。
alert(this);//window
全局范圍內this將會全局,在瀏覽器window

2.作為單純函數調用

function foo(x){this.x = x; } foo(99); alert(x);//全局變量x值為99

?

?

這里this指向全局對象,就是window。在嚴格模式中,則undefiend。

3.作為對象的方法調用

var name = "xiaoming"; var person = {name:"xiaohong",hello:function(sth){console.log(this.name + "says" + sth);} } person.hello("hello world");

?

輸出 xiaohong says hello world。this指向person對象,即當前對象。

4.作為構造函數
new Foo();
function Foo(){
this.name = “fooname”;
}
構造函數內部的this指向新創建的對象

5.內部函數

var name = "xiaoming"; var person = {name:"xiaohong",hello:function(sth){var sayhello = function(sth){console.log(this.name + "says" + sth);}sayhello(sth);} } person.hello("hello world");

?

?

在內部函數中,this沒有按預想的綁定到外層函數對象上,而是綁定到了全局對象。這里普 遍被認為是 JavaScript語言的設計錯誤,因為沒有人想讓內部函數中的 this指向全局對象。 一般的處理方式是將 this作為變量保存下來,一般約定為 that或者 self

var name = "xiaoming"; var person = {name:"xiaohong",hello:function(sth){var that = this;var sayhello = function(sth){console.log(that.name + "says" + sth);}sayhello(sth);} } person.hello("hello world");

?

6.使用call和apply設置this?

person.hello.call(person, “world”);
apply和 call類似,只是后面的參數是通過一個數組傳入,而不是分開傳入。兩者的方法定義:
call(thisArg[,arg1,arg2,…]); // 參數列表,arg1,arg2,…
apply(thisArg [,argArray] ); // 參數數組,argArray
兩者都是將某個函數綁定到某個具體對象上使用,自然此時的 this會被顯式的設置為第一 個參數。

我們可能經常會寫這樣的代碼:
$(“#ele”).click=obj.handler;

如果在 handler中用了 this,this會綁定在 obj上么?顯然不是,賦值以后,函數是在回調中執行的,this會綁定到$(“#ele”)元素上。
這邊介紹一個bind方法

var name = "xiaoming";var person = {name:"xiaohong",hello:function(sth){var that = this;var sayhello = function(sth){console.log(that.name + "says" + sth);}sayhello(sth);}}var odiv = document.getElementById("odiv"); odiv.onclick=person.hello.bind(person,"hello world");//xiaohong says hello world

?

bind方法和call/apply方法一樣,不同的就是bind方法不執行,只是拷貝代碼。用這個方法可以改變this指向,this指向的不再是odiv而是person。


web前端/H5/javascript學習群:250777811 歡迎大家關注我的微信號公眾號,公眾號名稱:web前端EDU。掃下面的二維碼或者收藏下面的二維碼關注吧(長按下面的二維碼圖片、并選擇識別圖中的二維碼)

?

?

轉載于:https://www.cnblogs.com/gongyue/p/7954644.html

總結

以上是生活随笔為你收集整理的javascript中的this的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 一集毛片| 亚洲免费影院 | 欧美一区| 性欧美大战久久久久久久免费观看 | gogo人体做爰大胆视频 | 亚洲欧洲在线播放 | 亚洲欧美国产高清 | 成人人伦一区二区三区 | 欧美hdxxxx | 四季av一区二区三区免费观看 | 久久精品久久国产 | 91夜色视频 | 91亚洲精品一区二区乱码 | 九色精品在线 | 亚洲一级特黄 | 99热首页| 天天综合天天 | 一区二区国产精品视频 | 久久6精品| 瑟瑟视频免费观看 | 手机看片久久久 | 亚洲18在线看污www麻豆 | 国产激情四射 | 98精品视频 | 欧美日本另类 | 日本波多野结衣在线 | 欧美色亚洲色 | 国产一区91精品张津瑜 | 黄色一级片 | 色屁屁视频| 国产精品欧美一区二区 | 精品亚洲成人 | 91色在线视频 | 欧美日韩精品一区二区三区蜜桃 | 成人在线视频网 | 国内自拍第二页 | 巨乳女教师的诱惑 | 波多野结衣精品 | 999毛片| 国产精品色在线 | 三级成人 | 久久一区二区三 | 国产高清免费在线播放 | 婷婷丁香色 | 日韩不卡免费 | 日韩xxx高潮hd | 免费的黄色网址 | 成人性生交大全免 | 免费日批视频 | 97人人爱| 三a大片 | 久久久婷 | 欧美丰满美乳xxx高潮www | 天天操天天草 | 久人人 | 日韩新片王网 | 催眠调教艳妇成肉便小说 | 久久国产热视频 | 丰满熟女人妻一区二区三 | 久久中文字幕电影 | 91视频二区 | 在线观看免费黄色 | 成人毛片观看 | 天天爽天天爽天天爽 | 99mav| 一级性生活大片 | 亚洲av无码一区二区乱子仑 | 日本一区二区在线免费 | 天天天天色 | 性欧美free | 秋霞在线视频 | 18成人免费观看网站 | 在线观看免费www | 熟妇无码乱子成人精品 | 少妇极品熟妇人妻无码 | 好男人天堂网 | 国产精品系列在线 | 成人免费在线视频观看 | 日韩一区二区av | 黄色三级带 | 交专区videossex另类 | 在线视频日韩精品 | 99精品久久久| 国产视频91在线 | 日本一区二区视频在线 | 日本一区二区三区电影在线观看 | 男生c女生 | 免费黄色三级网站 | 精品一区二区不卡 | 蜜桃臀aⅴ精品一区二区三区 | av九九九 | 揄拍成人国产精品视频 | 麻豆免费av| 欧美性啪啪 | 啪啪福利| av操操 | 国产白丝喷水 | 狠狠v欧美v日韩v亚洲ⅴ | 一二区视频 |