摘要:每個函數(shù)都包含兩個非繼承而來的方法和。與都屬于的一個方法,所以每個實(shí)例都有屬性作用方法和方法的作用相同改變指向。在使用方法時(shí),傳遞給函數(shù)的參數(shù)必須逐個列舉出來。例上代碼指向指向
每個函數(shù)都包含兩個非繼承而來的方法:apply()和call()。;
call與apply都屬于Function.prototype的一個方法,所以每個function實(shí)例都有call、apply屬性;
作用
call()方法和apply()方法的作用相同:改變this指向。
區(qū)別
他們的區(qū)別在于接收參數(shù)的方式不同: call():第一個參數(shù)是this值沒有變化,變化的是其余參數(shù)都直接傳遞給函數(shù)。在使用call() 方法時(shí),傳遞給函數(shù)的參數(shù)必須逐個列舉出來。例:call(obj,a,b,c) apply():傳遞給函數(shù)的是參數(shù)數(shù)組。 例:apply(obj,[a,b,c])
上代碼:
function add(c, d){ return this.a + this.b + c + d; } var o = {a:1, b:3}; add.call(o, 5, 7); // 1 + 3 + 5 + 7 = 16 this指向o add.apply(o, [10, 20]); // 1 + 3 + 10 + 20 = 34 this指向o
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/102929.html
摘要:剩下的兩個,我們分別改變了他們的執(zhí)行環(huán)境,分別指向了和,于是結(jié)果就是顯示對象各自的值。如果你仍然對和沒有清晰的認(rèn)識,可以試著這樣理解。 在Javascript中,每個函數(shù)都包含兩個非繼承而來的方法,call和apply。這兩個方法的用途都是在特定的作用域中調(diào)用函數(shù),實(shí)際上等于設(shè)置函數(shù)體內(nèi)的this對象的值。摘自《JavaScript高級程序設(shè)計(jì)》 apply方法接收兩個參數(shù),第一個參數(shù)...
摘要:原文章發(fā)表在的個人博客一細(xì)節(jié)中函數(shù)存在定義時(shí)上下文,運(yùn)行時(shí)上下文上下文是可變的為改變某個函數(shù)運(yùn)行時(shí)的上下文而存在的,換句話說,是為了改變函數(shù)內(nèi)部的指向沒有方法,但是有呀所以可以去把方法的運(yùn)行時(shí)上下文也就是運(yùn)行時(shí)的的指向,指向這個時(shí)候低啊用 原文章發(fā)表在 Klay-Clam的個人博客 一、細(xì)節(jié) javascript 中函數(shù)存在定義時(shí)上下文,運(yùn)行時(shí)上下文 上下文是可變的 1. call...
摘要:什么是函數(shù)的作用域函數(shù)作用域在中,作用域?yàn)榭稍L問變量,對象,函數(shù)的集合。函數(shù)作用域作用域在函數(shù)內(nèi)修改。與函數(shù)又有什么關(guān)系呢對象是在運(yùn)行時(shí)基于函數(shù)的執(zhí)行環(huán)境綁定的。 什么是函數(shù)的作用域 函數(shù)作用域:在 JavaScript 中,作用域?yàn)榭稍L問變量,對象,函數(shù)的集合。JavaScript 函數(shù)作用域: 作用域在函數(shù)內(nèi)修改。 this 與函數(shù)又有什么關(guān)系呢? this對象是在運(yùn)行時(shí)基于函數(shù)的...
摘要:和概覽我們要將歸為一類,單獨(dú)歸為一類三者的共同點(diǎn)是都可以指定和都是綁定在的原型上的,所以的實(shí)例都可以調(diào)用這三個方法至于為什么,看完這篇文章你就懂了如果你不懂什么是實(shí)例的話,請移步深入淺出面向?qū)ο蠛驮透拍钇钊霚\出面向?qū)ο蠛驮透拍钇谝粋€ 1.call/apply和bind概覽 我們要將call/apply歸為一類,bind單獨(dú)歸為一類 三者的共同點(diǎn)是都可以指定this call/...
摘要:的作用在中,方法和方法都是為了改變函數(shù)運(yùn)行時(shí)上下文而存在的,換句話說就是為了改變函數(shù)體內(nèi)部的指向。歡迎前端大牛糾正錯誤,如有錯誤我會及時(shí)改正。 寫在前面: 隔了很長時(shí)間了,也不知道寫點(diǎn)什么。最近一直在研究ES6,一直想寫出來的文章能對初學(xué)者或者是在學(xué)習(xí)JS路上有所幫助的。這就是我的初衷。 call、apply的作用 在JavaScript中,call()方法和apply()方法都是為了...
閱讀 3128·2021-10-13 09:40
閱讀 3992·2021-09-22 15:51
閱讀 1529·2021-09-22 15:48
閱讀 1098·2021-09-06 15:00
閱讀 1820·2019-08-30 15:43
閱讀 2393·2019-08-29 18:35
閱讀 1707·2019-08-29 16:18
閱讀 3653·2019-08-29 12:49