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