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中參數的基礎上再往后排。

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

日歷

鏈接

個人資料

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

存檔

92国产精品视频_亚洲a级在线观看_国产精品电影观看_国产精品免费观看在线_精品伊人久久97_亚洲人成在线观_尤物九九久久国产精品的特点_成人激情在线播放_成人黄色大片在线免费观看_亚洲成人精品久久久_久久免费视频在线观看_久久精品国产一区_国产一区二区三区18_亚洲欧美中文字幕在线一区_日韩美女中文字幕_日韩视频免费在线
亚洲自拍偷拍九九九| 中文字幕一区二区三区中文字幕| 成人动漫在线免费观看| 久久久夜精品| av在线女优影院| 成人精品在线观看| 午夜免费久久久久| 免费萌白酱国产一区二区三区| 欧美一区在线看| 国产一区99| 欧美性一二三区| 亚洲午夜精品久久久久久app| 国产成人av网站| 欧美午夜不卡| 亚洲精品久久久久久久久久久久| 亚洲图片自拍偷拍| 91在线国产福利| 91麻豆精品国产91久久久资源速度| 伊人色综合久久天天人手人婷| 久久综合色一综合色88| 在线播放/欧美激情| 中国china体内裑精亚洲片| 久久精品久久综合| 在线不卡亚洲| 高清日韩av电影| 久久精品国产福利| 蜜臀av一级做a爰片久久| 九九热精品视频在线播放| 日韩成人网免费视频| 色av成人天堂桃色av| 在线看片一区| 国产精品免费久久久久| 日韩一区二区三区电影在线观看| 不卡的av在线播放| 狠狠狠色丁香婷婷综合久久五月| 久久久久久久久久久久av| 日日天天久久| 91久久精品美女| 午夜精品一区二区三区电影天堂| 久久午夜国产精品| 91久久国产综合久久91精品网站| 亚洲国产精品综合小说图片区| 欧美国产免费| 欧美黄色一级视频| 亚洲天堂视频在线观看| 日韩精品中文字幕在线不卡尤物| 色噜噜色狠狠狠狠狠综合色一| 电影午夜精品一区二区三区| 亚洲精品视频一二三区| 精品三级在线看| 国产一区二区三区国产| 日韩亚洲电影在线| 久久se精品一区精品二区| 欧美日韩三区| 国产一区二区三区在线看| 久久久久影视| 农村妇女一区二区| 亚洲精品视频久久| 成人午夜私人影院| 美女视频免费一区| 92看片淫黄大片欧美看国产片| 欧美在线一级va免费观看| 日本中文字幕中出在线| 国产日韩欧美综合一区| 欧美理论电影在线观看| 日本中文不卡| 中文字幕日韩精品有码视频| 337p日本欧洲亚洲大胆色噜噜| 成人激情综合网站| 欧美一区二区视频网站| 国产婷婷成人久久av免费高清| 精品久久91| 亚洲欧洲高清在线| 欧美xxxx黑人又粗又长精品| 国产视频亚洲色图| 亚洲国产精品久久久久蝴蝶传媒| 日韩欧美精品一区二区三区经典| 国产女主播一区二区| 国产一区二区三区黄视频| 色婷婷狠狠五月综合天色拍| 一区二区三区四区精品| 亚洲深深色噜噜狠狠爱网站| 在线国产91| ㊣最新国产の精品bt伙计久久| 9l视频自拍九色9l视频成人| 97精品视频在线观看自产线路二| 国产精品久久中文| 国产精品视频| 视频91a欧美| 麻豆成人91精品二区三区| 日韩不卡在线观看日韩不卡视频| 欧美精品 国产精品| 日本在线一区二区三区| 久久亚洲综合国产精品99麻豆精品福利| 亚洲欧美成人vr| 亚洲综合五月| 亚洲精品成人a在线观看| 日韩欧美成人网| 在线精品亚洲欧美日韩国产| av资源站久久亚洲| 日韩欧美一二三四区| 亚洲第一网站男人都懂| 一区二区导航| 亚洲日本三级| 菠萝菠萝蜜在线观看| 免费观看在线综合| 在线日韩成人| 日韩欧美网站| 欧美jizz18性欧美| 亚洲精品在线二区| 中文一区一区三区高中清不卡免费| 日韩精品av| 风间由美性色一区二区三区| 成人av资源网址| 日韩欧美小视频| 国模精品一区二区三区色天香| a一区二区三区| 成人精品在线观看| 国产一区二区三区日韩| 久久久www成人免费精品张筱雨| 成人av黄色| 美女搞黄视频在线观看| 欧美日韩1区2区| 国产精品一区二区不卡视频| 精品在线网站观看| 欧美精品精品精品精品免费| 2019亚洲男人天堂| 国产日本欧美一区二区三区在线| 精品亚洲精品福利线在观看| 国产不卡av在线免费观看| 九九九九精品九九九九| 欧美成人二区| 成人有码在线播放| 92国产精品观看| 香蕉视频在线免费看| 国产成人一区二区三区| 欧美专区一二三| 自拍偷拍国产精品| 成人午夜毛片| 久久久久影视| 91亚洲国产成人精品一区二三| 欧美日韩精品一区二区| 91精品国产91综合久久蜜臀| 国产区精品视频在线观看豆花| 五月天亚洲综合情| 亚洲综合成人在线| 国产精品夫妻激情| 国产婷婷色一区二区三区| 国模gogo一区二区大胆私拍| 日韩不卡免费高清视频| 亚洲精品亚洲人成人网| 91精品国产欧美一区二区18| 国产精品视频一区二区三区不卡| 久久久久免费视频| 亚洲一区二区三区成人在线视频精品| 日韩一区免费观看| 国产精品旅馆在线| 国产精品中出一区二区三区| 天天射天天综合网| 免费看日本一区二区| 亚洲国产成人高清精品| 99久久99九九99九九九| 中文在线资源观看视频网站免费不卡| 亚洲精品tv|