摘要:只不過(guò)只是改變了方法中的關(guān)鍵字,并且把參數(shù)傳遞過(guò)去,但是并沒(méi)有把方法執(zhí)行,而是返回了我們改變關(guān)鍵字以后的結(jié)果。
"use strict";//告訴當(dāng)前瀏覽器接下來(lái)使用的是嚴(yán)格模式進(jìn)行編寫
var obj = {name: "珠峰培訓(xùn)"};
function fn(num1, num2){
console.log(num1+num2); console.log(this);
}
fn(100, 200);////this ---> window num1=100 num2=200
fn.call(100, 200);//this --->100 num1=100 num2=undefined
fn.call(obj, 100, 200);//this --->obj num1=100 num2=200
fn.call();//this ---> window 在嚴(yán)格模式下this---> undefined
fn.call(null);//this ---> window 在嚴(yán)格模式下this---> null
fn.call(undefined);//this ---> window 在嚴(yán)格模式下this---> undefined
call和apply方法的作用是一模一樣的,都是用來(lái)改變方法的this關(guān)鍵字,并且把方法執(zhí)行,而且在嚴(yán)格模式下和非嚴(yán)格模式下,對(duì)于第一個(gè)參數(shù)是null/undefined這種情況的規(guī)律也是一樣的;只不過(guò)call在給方法傳遞參數(shù)的時(shí)候,是一個(gè)一個(gè)傳遞值的,而apply是吧給方法傳遞的參數(shù)統(tǒng)一放在一個(gè)數(shù)組中進(jìn)行操作。
var returnFn = fn.bind(obj,100,200);
bind:也是用來(lái)改變方法中this關(guān)鍵字的。只不過(guò)bind只是改變了方法中的this關(guān)鍵字,并且把參數(shù)傳遞過(guò)去,但是并沒(méi)有把方法執(zhí)行,而是返回了我們改變this關(guān)鍵字以后的結(jié)果。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/81267.html
摘要:和概覽我們要將歸為一類,單獨(dú)歸為一類三者的共同點(diǎn)是都可以指定和都是綁定在的原型上的,所以的實(shí)例都可以調(diào)用這三個(gè)方法至于為什么,看完這篇文章你就懂了如果你不懂什么是實(shí)例的話,請(qǐng)移步深入淺出面向?qū)ο蠛驮透拍钇钊霚\出面向?qū)ο蠛驮透拍钇谝粋€(gè) 1.call/apply和bind概覽 我們要將call/apply歸為一類,bind單獨(dú)歸為一類 三者的共同點(diǎn)是都可以指定this call/...
摘要:首先介紹一下和的定義和的作用是改變函數(shù)運(yùn)行時(shí)的上下文環(huán)境改變的指向?qū)⒔壎ǖ交蛘哒f(shuō)調(diào)用了里面的方法。方法返回的是修改過(guò)后的函數(shù)追夢(mèng)子追夢(mèng)子執(zhí)行成功 這是一道今天遇到的面試題 showImg(https://segmentfault.com/img/bV8lco?w=330&h=222); 因?yàn)閟etTimeout屬于匿名函數(shù),this指向window,所以this.id = 1但還是先總...
總結(jié)call,apply,bind方法的理解使用和區(qū)別。 call,apply,bind這三個(gè)方法在JavaScript中是用來(lái)改變函數(shù)調(diào)用的this指向。那么改變函數(shù)this指向有什么用呢?我們先來(lái)看一段代碼 var a= { name:harden, fn:function () { console.log(this.name); } } var b =...
摘要:輸出的作用與和一樣,都是可以改變函數(shù)運(yùn)行時(shí)上下文,區(qū)別是和在調(diào)用函數(shù)之后會(huì)立即執(zhí)行,而方法調(diào)用并改變函數(shù)運(yùn)行時(shí)上下文后,返回一個(gè)新的函數(shù),供我們需要時(shí)再調(diào)用。 前言 js中的call(), apply()和bind()是Function.prototype下的方法,都是用于改變函數(shù)運(yùn)行時(shí)上下文,最終的返回值是你調(diào)用的方法的返回值,若該方法沒(méi)有返回值,則返回undefined。這幾個(gè)方法...
摘要:關(guān)于前端中是個(gè)老生常談的問(wèn)題,總是說(shuō)不清道不明,看這里。的大致用法,相信接觸過(guò)前端的同學(xué)都知道,無(wú)非以下種。先想一下,兩次執(zhí)行后結(jié)果是什么。輸出總結(jié)被誰(shuí)調(diào)用指向誰(shuí),沒(méi)有被調(diào)用的情況下,瀏覽器默認(rèn)為。由于箭頭函數(shù)中的,總是指向父級(jí)作用域。 關(guān)于this 前端中this是個(gè)老生常談的問(wèn)題,總是說(shuō)不清道不明,看這里。this只能用在函數(shù)里面,相信全世界的人都知道。this就是函數(shù)在被執(zhí)行的時(shí)...
閱讀 1850·2021-11-11 16:55
閱讀 1462·2019-08-30 15:54
閱讀 784·2019-08-29 15:34
閱讀 2263·2019-08-29 13:11
閱讀 2920·2019-08-26 13:28
閱讀 1886·2019-08-26 10:49
閱讀 1004·2019-08-26 10:40
閱讀 2564·2019-08-23 18:21