92国产精品视频_亚洲a级在线观看_国产精品电影观看_国产精品免费观看在线_精品伊人久久97_亚洲人成在线观_尤物九九久久国产精品的特点_成人激情在线播放_成人黄色大片在线免费观看_亚洲成人精品久久久_久久免费视频在线观看_久久精品国产一区_国产一区二区三区18_亚洲欧美中文字幕在线一区_日韩美女中文字幕_日韩视频免费在线

更改this指向的方法及其區別

2019-8-21    seo達人

今天給朋友們帶來更改this指向的三種方法,以及它們的區別:



一:call用法

window.color = 'red';

document.color = 'yellow';

var s1 = {color: 'blue'};

function changeColor () {

console.log(this.color);

}

changeColor.call() //不傳參數默認指向window

changeColor.call(window) //指向window

changeColor.call(document) //指向document

changeColor.call(this) //構造函數的this如果打括號調用默認指向window

changeColor.call(s1) //指向s1對象



//例二:

var Pet = {

words: '...',

speak: function (say) {

console.log(say + '' + this.words)

}

}

Pet.speak('123') //輸出123...

var Dog = {

words: 'WangWangWang'

}

Pet.speak.call(Dog,'123') //輸出123WangWangWang



二:apply用法:

window.number = 'one';

document.number = 'two';

var s1 = {number: 'three'};



function changeNum() {

console.log(this.number)

}

changeNum.apply(); //one

changeNum.apply(window); //one

changeNum.apply(document);//two

changeNum.apply(this);//one

changeNum.apply(s1);//three



//例二:

function Pet(words){

this.words = words;

this.speak = function(){

console.log(this.words)

}

}

function Dog(words){

Pet.call(this,words);//結果wang

// Pet.apply(this,arguments);//結果wang

}

var dog = new Dog('wang');

dog.speak(); //wang



apply與call的區別:

接收的參數不同

apply()方法接收倆個參數,一個是函數運行的作用域(this),另一個是參數數組。

call()方法第一個參數和apply()方法的一樣,但是傳遞給函數的參數必須一 一列舉出來。

語法:

apply([thisObj [,argArray]]);

調用一個對象的一個方法,另一個對象替換當前對象

call([thisObj [,arg1[,arg2[…,argn]]]]);

說明:

如果thisObj是null或者undefined的時候,默認指向window。

如果argArray不是一個有效數組或不是arguments對象,那么將導致一個TypeError,如果沒有提供argArray和thisObj任何一個參數,那么Global對象將用作thisObj。

call方法可以用來代替另一個對象的一個方法,call方法可以將一個函數的對象上下文從初始的上下文改變為thisObj指定的新對象,如果沒有提供thisObj參數,那么Global對象被用于thisObj。



三:bind的用法:

var obj = {

name: 'WuXiaoDi'

}

function printName() {

console.log(this.name)

}

var wuXiaoDi = printName.bind(obj)

console.log(wuXiaoDi) //function(){...}

wuXiaoDi() //WuXiaoDi



//例二:

function fn(a, b, c) {

console.log(a, b, c);

}

var fn1 = fn.bind(null, 'Dot');

fn('A', 'B', 'C'); //A B C

fn1('A', 'B', 'C');           // Dot A B

fn1('B', 'C');                // Dot B C

fn.call(null, 'Dot');      // Dot undefined undefined



//例三:實現函數珂里化

var add = function(x) {

return function(y) {

return x + y;

};

};

var increment = add(1);

var addTen = add(10);

increment(2) //3

addTen(2) //12



小總結:

Function.prototype.bind(thisArg) - - ES5



能夠返回一個新函數,該新函數的主體與原函數主體一致,但當新函數被調用執行時,函數體中的this指向的是thisArg所表示的對象。



Function.prototype.call(this.Arg,val1,val2, …)



調用函數執行,在函數執行時將函數體中的this指向修改為thisArg所表示的對象



val1, val2, … 表示傳遞給調用函數的實際參數列表



Function.prototype.apply(thisArg, array|arguments)



調用函數執行,在函數執行時將函數體中的this指向修改為thisArg所表示的對象,



array|arguments 表示調用函數的參數列表,使用數組或類數組的格式



區別:

bind與call和apply的區別:

返回值的區別:

bind的返回值是一個函數,而call和apply是立即調用。

參數使用的區別:

bind與call一樣是從第二個參數開始將想要傳遞的參數一 一寫入。但call是把第二個及以后的參數作為fn方法的實參傳進去,而fn1方法的實參實則是在bind中參數的基礎上再往后排。

藍藍設計www.skdbbs.com )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制  用戶體驗 、交互設計、 網站建設 、平面設計服務。

日歷

鏈接

個人資料

藍藍設計的小編 http://www.skdbbs.com

存檔

92国产精品视频_亚洲a级在线观看_国产精品电影观看_国产精品免费观看在线_精品伊人久久97_亚洲人成在线观_尤物九九久久国产精品的特点_成人激情在线播放_成人黄色大片在线免费观看_亚洲成人精品久久久_久久免费视频在线观看_久久精品国产一区_国产一区二区三区18_亚洲欧美中文字幕在线一区_日韩美女中文字幕_日韩视频免费在线
欧美日韩国产限制| 69av成年福利视频| 国模吧一区二区三区| 国产精品视频久久久| 欧美裸体xxxx| 亚洲成人动漫在线播放| 成人啪啪免费看| 成人h视频在线观看播放| 91精品国产高清自在线看超| 国产欧美日韩最新| 538国产精品一区二区在线| 欧美日韩国产综合新一区| 国产情人节一区| 青青久久av北条麻妃海外网| 国产激情视频一区| 亚洲精品日韩激情在线电影| 综合国产在线视频| 久久亚洲国产成人| 欧美黄色三级网站| 亚洲最大激情中文字幕| 亚洲天堂av图片| 久久久久久久网站| 国产成人综合亚洲| 成人午夜在线视频一区| 2019中文字幕免费视频| 亚洲视频国产视频| 久久韩国免费视频| 亚洲欧美在线一区| 亚洲综合精品一区二区| 亚洲人高潮女人毛茸茸| 欧美日韩国产成人在线观看| 国产精品免费一区二区三区都可以| 日韩精品极品毛片系列视频| 91影视免费在线观看| 亚洲香蕉成人av网站在线观看| 日韩一区二区三区xxxx| 日韩影视在线观看| 97国产精品视频人人做人人爱| 国产91露脸中文字幕在线| 国产精品欧美日韩久久| 国产一区二区激情| 日韩欧亚中文在线| 88国产精品欧美一区二区三区| 国产视频久久久| 57pao成人永久免费视频| 日本一区二区在线播放| 欧美国产日韩二区| 久久精品色欧美aⅴ一区二区| 北条麻妃一区二区在线观看| 九九精品视频在线观看| 亚洲精品一区二区三区婷婷月| 在线观看免费高清视频97| 国产suv精品一区二区| 国产精品久久久久久久久久ktv| 91精品国产高清久久久久久91| 国产日韩av在线播放| 欧美一区二区视频97| 中文字幕亚洲一区在线观看| 精品成人国产在线观看男人呻吟| 久久中国妇女中文字幕| 欧美成人亚洲成人| 热re99久久精品国产66热| 51视频国产精品一区二区| 国产69精品久久久久久| 色妞久久福利网| 亚洲欧美成人网| 亚洲电影免费观看高清| 草民午夜欧美限制a级福利片| 91在线精品视频| 国模精品系列视频| 91精品视频播放| 亚洲最大成人免费视频| 国产精品91在线| 激情成人在线视频| 欧美日韩在线免费| 国产一区二区三区18| 92福利视频午夜1000合集在线观看| 91精品国产综合久久久久久蜜臀| 精品视频久久久| 琪琪第一精品导航| 日韩理论片久久| 在线精品91av| 久久久亚洲精品视频| 91chinesevideo永久地址| 国产精品久久久久久久久久久久久久| 久99九色视频在线观看| 国产精品99蜜臀久久不卡二区| 亚洲性生活视频| 欧美大尺度在线观看| 91久久国产婷婷一区二区| 日韩av有码在线| 成人精品一区二区三区| 不卡av电影院| 日韩不卡在线观看| 日韩欧美在线字幕| 国产精品高清网站| 亚洲精品白浆高清久久久久久| 国产成人一区二区| 色综合视频一区中文字幕| 91精品视频免费| 国产精品va在线播放我和闺蜜| 欧美亚洲成人xxx| 国产拍精品一二三| 久久视频在线观看免费| 91精品国产沙发| 欧美精品九九久久| 亚洲国产精品成人va在线观看| 黄色精品在线看| 亚洲人成自拍网站| 在线看片第一页欧美| 超碰日本道色综合久久综合| 欧美韩国理论所午夜片917电影| 国产欧美日韩精品丝袜高跟鞋| 欧美精品久久久久久久久| 欧美美女15p| 国产精品视频播放| 精品国产一区二区三区在线观看| 国产精品一区av| 69av视频在线播放| 成人h视频在线| 性欧美xxxx| 久久精品99国产精品酒店日本| 69av在线播放| 中文字幕精品av| 久久香蕉国产线看观看av| 久久久久久久久网站| 亚洲乱码av中文一区二区| 97在线视频免费| 久久久亚洲国产天美传媒修理工| 韩国三级电影久久久久久| 91极品女神在线| 亚洲精品动漫久久久久| 国产精品亚洲аv天堂网| 国内精品久久久| 国产精品男女猛烈高潮激情| 欧美日韩国产激情| 91理论片午午论夜理片久久| 亚洲第一二三四五区| 色综合色综合久久综合频道88| 亚洲黄色av女优在线观看| 欧美另类xxx| 欧美丰满少妇xxxx| 亚洲日韩中文字幕在线播放| 日韩专区在线播放| 97精品国产97久久久久久免费| 国产精品日日摸夜夜添夜夜av| 日韩一级裸体免费视频| 最近中文字幕mv在线一区二区三区四区| 日韩毛片在线观看| 亚洲精品国产精品乱码不99按摩| 久久色在线播放| 日韩经典中文字幕| 国产亚洲精品久久久优势| 午夜美女久久久久爽久久| 91国自产精品中文字幕亚洲| 久久久最新网址| 欧美精品做受xxx性少妇| 欧美色欧美亚洲高清在线视频| 黑人巨大精品欧美一区二区三区| 26uuu亚洲伊人春色| 国产精品视频免费在线| 成人动漫网站在线观看| 自拍亚洲一区欧美另类| 亚洲国产成人精品久久久国产成人一区|