摘要:里面的方法利用里面的函數輸出方法輸出代表的是對象,為全局變量,全局變量實際上是對象的一個屬性。而以方法調用時,值為我們傳進去的對象。方法方法實際上是與方法用法相同,只不過方法傳進去的參數是以數組形式例如其他與并沒有區別。
js里面的call apply bind 方法 利用js里面的function函數
function example(a,b){ console.log(a+b) } example(1,2) 輸出 3call方法
var a = 1; function example(){ console.log(this.a) } 輸出 1
this代表的是window對象,a為全局變量,全局變量實際上是window對象的一個屬性。
var a = 1; var obj = { a=9; }; function example(b){ return this.a+b } console.log(example.call(obj,2))
輸出11,而不是3,實際上,call是改變函數里面的this對象的,如果以example()這種普通方式調用函數的話,this值為我們設置的全局變量。而以call方法調用時,this值為我們傳進去的obj對象。
apply方法apply方法實際上是與call方法用法相同,只不過apply方法傳進去的參數是以數組形式例如
example.apply(obj,[2])
其他與call并沒有區別。
bind方法我們用上面的方法使用bind方法
var a = 1; var obj = { a=9; }; function example(b){ return this.a+b } console.log(example.bind(obj,2))
我們會發現打印出來的是一個函數
? example(b){ return this.a+b } }
我們再把參數去掉打印一下
console.log(example.bind(obj)) ? example(b){ return this.a+b } }
我們會發現并沒有變化
實際上bind是將obj對象與函數進行綁定,如果我們需要使用,我們需要將函數重新創建一個變量,然后調用新的變量就可以了,
var newexample = example(); newexample()
如果我們再進行打印
console.log(newexample(2))
我們會得到11
好了,call apply bind 方法就介紹到這里了,你記住了嗎?文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/87364.html
摘要:日常編碼中被開發者用來實現對象冒充,也即顯示綁定。面試題源碼實現,事實上是對基礎知識的一個綜合考核。原型鏈終端指向,不會有構造函數,也不會有等屬性,這些屬性來自。 call/apply/bind 日常編碼中被開發者用來實現 對象冒充,也即 顯示綁定 this。 面試題:call/apply/bind源碼實現,事實上是對 JavaScript 基礎知識的一個綜合考核。 相關知識點: 作...
摘要:其實它們都很簡單,但是在處理一些與相關的函數的時候,用來改變函數中的指向,卻是必不可少的工具,所以必須掌握好它們的用法。 關于javascript中的bind、call、apply等函數的用法 我GitHub上的菜鳥倉庫地址: 點擊跳轉查看其他相關文章 文章在我的博客上的地址: 點擊跳轉 ? ? ? ? 前面的文章已經說到this的指向了,那么這篇文章就要說一說和this相關的三個...
摘要:眾所周知,這三個函數都是改變執行上下文的,那么我們來捋一捋,這些函數內部到底做了什么。 前言 稍微翻了一下call,apply, bind 的各種論壇上的文章, 發現講的都太淺了,大部分都只講了個用法, 對于實現的原理卻都沒有提,因此,在這里,我寫下這篇文章, 希望能讓大家認識到原理所在。 眾所周知, 這三個函數都是改變執行上下文的 , 那么我們來捋一捋,這些函數內部到底做了什么。 c...
摘要:但是當構造函數顯示返回一個對象時就會將這個對象賦值給變量,的使用則無效。將參數全都傳入,它會把參數作為數組傳入。 首先了解this 如果想用好這幾個方法,需要先了解this被調用方式不同而導致值不同的各種情況,然后就會認識到使用這幾個方法的原因在哪里。(可以指定this的值)全局上下文中this指向全局對象,函數上下文this取決于被調用的方式 例: 在非嚴格模式下,全局調用函數thi...
摘要:之前寫過一篇文章面試官問能否模擬實現的和方法就是利用對象上的函數指向這個對象,來模擬實現和的。雖然實際使用時不會顯示返回,但面試官會問到。非嚴格模式下,和,指向全局對象 前言 面試官出很多考題,基本都會變著方式來考察this指向,看候選人對JS基礎知識是否扎實。讀者可以先拉到底部看總結,再谷歌(或各技術平臺)搜索幾篇類似文章,看筆者寫的文章和別人有什么不同(歡迎在評論區評論不同之處),...
閱讀 1985·2021-11-22 14:45
閱讀 2593·2021-10-12 10:11
閱讀 768·2021-09-22 10:02
閱讀 1198·2019-08-30 15:55
閱讀 1142·2019-08-30 15:54
閱讀 3247·2019-08-30 15:54
閱讀 1181·2019-08-29 17:16
閱讀 3080·2019-08-28 17:55