亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

關于JS中的apply,call,bind的深入解析

2019-11-20 10:17:32
字體:
來源:轉載
供稿:網友

在Javascript中,Function是一種對象。Function對象中的this指向決定于函數被調用的方式。使用apply,call 與 bind 均可以改變函數對象中this的指向,在說區別之前還是先總結一下三者的相似之處:
1、都是用來改變函數的this對象的指向的。
2、第一個參數都是this要指向的對象。
3、都可以利用后續參數傳參。

call方法:

語法:call([thisObj[,arg1[, arg2[,   [,.argN]]]]])
定義:調用一個對象的一個方法,以另一個對象替換當前對象。
說明:call 方法可以用來代替另一個對象調用一個方法。call 方法可將一個函數的對象上下文從初始的上下文改變為由 thisObj 指定的新對象。
如果沒有提供 thisObj 參數,那么 Global 對象被用作 thisObj。

apply:

語法:apply(thisObj,數組參數)
定義:應用某一個對象的一個方法,用另一個對象替換當前對象
說明:如果參數不是數組類型的,則會報一個TypeError錯誤。

bind:

在EcmaScript5中擴展了叫bind的方法(IE6,7,8不支持),bind與call很相似,,例如,可接受的參數都分為兩部分,且第一個參數都是作為執行時函數上下文中的this的對象。不同點有兩個:
①bind的返回值是函數;②后面的參數的使用也有區別;

先看例子一:

 

function add(a, b) {  alert(a + b);}function sub(a, b) {  alert(a - b);}

對于,call,可以這么用:
add.call(sub,3,1);結果為4

對于,apply,可以這么用;
add.apply(sub,[3,1]);結果為4

對于,bind,可以這么用:
add.bind(sub)(3,1);結果為4


可以看到輸出結果都一樣,但是傳參用法不一樣;

再看例子二:

function jone(name,age,work){  this.name=name;  this.age=age;  this.work=work;  this.say=function(msg){    alert(msg+",我叫"+this.name+",我今年"+this.age+"歲,我是"+this.work)  }}var jack={  name:"jack",  age:'24',  work:"學生"}var pet=new jone();pet.say.apply(jack,["歡迎您"])console.log(this.name)

對于call,需要這樣:
pet.say.call(jack,"歡迎您!")

對于apply,需要這樣:
pet.say.apply(jack,["歡迎您!"])

對于bind,需要這樣:
pet.say.bind(jack,"歡迎您")()

此時輸出console.log(this.name),發現this.name為jack,this上下文已經發生改變了;

以上這篇關于JS中的apply,call,bind的深入解析就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
曰本色欧美视频在线| 欧美天天综合色影久久精品| 在线视频中文亚洲| 久久香蕉精品香蕉| 欧美成人三级视频网站| 久久久精品国产亚洲| 久久不射热爱视频精品| 91av在线不卡| 亚洲欧洲在线看| 久久成人这里只有精品| 亚洲午夜av久久乱码| 成人免费自拍视频| 欧洲成人午夜免费大片| 国产精品久久久久久久久久| 精品无人区乱码1区2区3区在线| 亚洲欧洲免费视频| 欧洲成人在线视频| 日韩视频在线观看免费| 亚洲欧美变态国产另类| 亚洲图中文字幕| 亚洲欧洲在线免费| 欧美综合在线第二页| 色偷偷偷综合中文字幕;dd| 久久久综合免费视频| 日韩一区二区三区在线播放| 久久久精品国产网站| 欧美激情视频免费观看| 亚洲国产成人在线播放| 高清一区二区三区四区五区| 欧美床上激情在线观看| 国产精品1区2区在线观看| 久久精品视频导航| 欧美影院在线播放| 综合国产在线视频| 8090成年在线看片午夜| 亚洲一区中文字幕在线观看| 亚洲午夜未满十八勿入免费观看全集| 日本高清视频一区| 亚洲国产精品久久精品怡红院| 久久久久久高潮国产精品视| 亚洲色在线视频| 欧美第一黄网免费网站| 亚洲图片在线综合| 亚洲一区二区三区香蕉| 欧美最猛黑人xxxx黑人猛叫黄| 亚洲激情国产精品| 九九热精品视频| 欧美一区二区三区图| 日韩av中文字幕在线| 欧美黑人视频一区| 国产婷婷成人久久av免费高清| 久久激情视频免费观看| 欧美电影电视剧在线观看| 欧美成人在线网站| 日韩欧美视频一区二区三区| 免费97视频在线精品国自产拍| 欧美一级电影免费在线观看| 国产69精品久久久久久| 欧美性猛交丰臀xxxxx网站| 国产日产久久高清欧美一区| 久久91亚洲精品中文字幕| 国产欧亚日韩视频| 久久精品影视伊人网| 日韩美女视频免费看| 久久久91精品国产一区不卡| 日本精品久久久久影院| 欧美性理论片在线观看片免费| 成人黄色免费看| 成人在线视频福利| 亚洲无av在线中文字幕| 亚洲深夜福利网站| 91在线高清免费观看| 大荫蒂欧美视频另类xxxx| 亚洲色无码播放| 欧美美最猛性xxxxxx| 色香阁99久久精品久久久| 国产精品久久久久久久久男| 日韩中文字幕免费| 国产丝袜精品第一页| 日本国产欧美一区二区三区| 国产精品欧美亚洲777777| 亚洲欧美视频在线| 成人黄色在线免费| 欧美成人午夜激情| 亚洲欧洲在线视频| 国产精品久久久久久av福利| 7m第一福利500精品视频| 88国产精品欧美一区二区三区| 国产精品爽黄69| 欧美成人激情视频免费观看| 久久视频这里只有精品| 深夜精品寂寞黄网站在线观看| 福利二区91精品bt7086| 欧美一级大片在线免费观看| 色无极亚洲影院| 国产极品jizzhd欧美| 91伊人影院在线播放| 成人97在线观看视频| 亚洲人成毛片在线播放| 日日骚久久av| 97在线视频免费观看| 欧美限制级电影在线观看| 久久人人爽亚洲精品天堂| 欧美裸体视频网站| 国产成人亚洲综合91| 欧美成人国产va精品日本一级| 国产精品久久久久高潮| 国产欧美在线观看| 亚洲在线观看视频网站| 亚洲欧美日韩国产中文| 国产精品国产亚洲伊人久久| 人人做人人澡人人爽欧美| 国产亚洲欧美一区| 91高清视频在线免费观看| xvideos国产精品| 草民午夜欧美限制a级福利片| 亚洲一区二区精品| 亚洲在线视频观看| 色婷婷综合成人av| 亚洲免费福利视频| 亚洲伊人第一页| 国产日韩欧美91| 国产精品自拍视频| 91亚洲国产精品| 国产精品久久电影观看| 欧美专区在线视频| 亚洲精品日产aⅴ| 欧美视频中文在线看| 欧美成人精品在线视频| 久久久国产视频| 69国产精品成人在线播放| 国产精品欧美一区二区三区奶水| 成人做爽爽免费视频| 欧美裸身视频免费观看| 精品视频www| 91在线观看免费高清| 成人黄色免费片| 国产成人精品免费久久久久| 色爱av美腿丝袜综合粉嫩av| 色悠久久久久综合先锋影音下载| 国产一区二区三区视频免费| 日本91av在线播放| 久久国产一区二区三区| 97视频在线观看视频免费视频| 国产精品av在线播放| www.亚洲一区| 国产精品海角社区在线观看| 国产色视频一区| 亚洲精品av在线播放| 日本道色综合久久影院| 国产亚洲欧洲黄色| 国产成人久久久精品一区| 国产精品久久91| 97精品久久久中文字幕免费| 午夜精品一区二区三区在线| 色天天综合狠狠色| 美女撒尿一区二区三区| 亚洲美女视频网| 亚洲精品99999| 亚洲色图欧美制服丝袜另类第一页| 亚洲成人久久网| 国产一区欧美二区三区| 51视频国产精品一区二区| 亚洲图片在线综合|