追求卓越一諾千金

藍藍設計__通州尾货市场,2011年成立|_106彩票官网,主創清華團隊||山西电视台小郭跑腿,專注軟件和互聯網ui設計開發|衡水热线欢迎你。擅長企業信息化管理_-_沈阳市财政局财会之窗、監控-|_买家圈、大數據軟件UIUE谘詢和設計開發服務---星岛田阳子。立足UI-|僵尸片排行榜前十名,好好學習|-|天弘基金余额宝计算器,天天進步--小米电视3发布会!


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

2019-8-21 釋然 前端及開發文章及欣賞


今天給朋友們帶來更改this指向的三種方法-_李天一受害老师照片,以及它們的區別_-娱乐彩票投注:

一__-118彩票是不是正规的: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對象

//例二__1980时时彩:
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的區別_|_2m彩票2m彩票振撼来袭:
接收的參數不同
apply()方法接收倆個參數-_铜仁市人民政府网,一個是函數運行的作用域(this)|_上海酒吧砍人视频,另一個是參數數組___赛罗奥特曼大电影。
call()方法第一個參數和apply()方法的一樣_--湖南移动梦网营业厅,但是傳遞給函數的參數必須一 一列舉出來_|青岛小海燕艺术学校。
語法|__西安地震了吗:
apply([thisObj [,argArray]]);
調用一個對象的一個方法|_|银河平台彩票计划,另一個對象替換當前對象
call([thisObj [,arg1[,arg2[…,argn]]]])|_永宁政府公众网;
說明-|_闭月堂:
如果thisObj是null或者undefined的時候||3721助手,默認指向window|||二手房购房定金合同。
如果argArray不是一個有效數組或不是arguments對象|改装车出售,那麼將導致一個TypeError_-獐子图片,如果沒有提供argArray和thisObj任何一個參數--众赢国际是不是黑平台,那麼Global對象將用作thisObj||-辽台春晚。
call方法可以用來代替另一個對象的一個方法_--测公司名字好坏,call方法可以將一個函數的對象上下文從初始的上下文改變為thisObj指定的新對象|-|365彩票安卓客户端,如果沒有提供thisObj參數|-盈彩网apP,那麼Global對象被用於thisObj||-暴龙摩托。

三-_3cp彩票注册: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

//例三|_|fj12530:實現函數珂裏化
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

能夠返回一個新函數|__致富彩时时彩,該新函數的主體與原函數主體一致_|_诺基亚qd软件下载,但當新函數被調用執行時|2个小时赌输了50万,函數體中的this指向的是thisArg所表示的對象||优乐彩彩票是真的吗。

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

調用函數執行|--银河国际博彩,在函數執行時將函數體中的this指向修改為thisArg所表示的對象

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

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

調用函數執行|||谁能百里挑一王可达,在函數執行時將函數體中的this指向修改為thisArg所表示的對象-|_感人亲情电影,

array|arguments 表示調用函數的參數列表---0165彩票正版,使用數組或類數組的格式

區別-||现任重庆市公安局局长:
bind與call和apply的區別|通成物流查询:
返回值的區別-阿里旺旺2012买家版:
bind的返回值是一個函數|_青岛华臣影讯,而call和apply是立即調用|至尊争霸彩票能赚钱吗。
參數使用的區別__这五个人火了:
bind與call一樣是從第二個參數開始將想要傳遞的參數一 一寫入阿克苏诺贝尔 待遇。但call是把第二個及以後的參數作為fn方法的實參傳進去-222彩票安卓,而fn1方法的實參實則是在bind中參數的基礎上再往後排|-_山东移动积分商城。
藍藍設計www.jwrumpff.com )是一家專注而深入的界麵設計公司-_陈思远微博,為期望卓越的國內外企業提供卓越的UI界麵設計易富彩票平台、BS界麵設計 |4466k、 cs界麵設計 _-长沙口碑网租房、 ipad界麵設計 -|草榴永久域名、 包裝設計 -_许昌胖子店、 圖標定製 |-宝利格改装卡宴、 用戶體驗 _-1288彩票怎么样、交互設計|-17彩票安卓、 網站建設 |_108娱乐平台正规的吗、平麵設計服務|-无主之地2发型不好的日子。
標簽: 更改this指向的方法及其區別 « 網格基礎手冊 | WEB端控件規範——反饋類»


訂閱Rss