apply的“非改變this“的用法
說到apply,大家都是知道是改變this指向的,也都會立馬和call聯系在一起,MDN官網上也是如是說:
其實我們在平常使用call和apply的時候,都是想到他們的改變函數的this的功能,
正如MDN上面說的apply和call只有唯一一點區別,就是:apply方法的二個參數接受的是“參數數組”!
也就是說:apply的第二個“參數數組”最終會打散被調用apply的函數所調用;
因此我們也可以利用這一特性,進行數組的打散的操作,如MDN中所述:
當然我們這裏也可以使用ES6的擴張語句,如下:
之所以要寫這篇文章就是告誡自己:思維不要太局限,就像覺得apply就只能用於改變this的指向的功能。當我們咋一看Math.max.apply
在發現疑惑的時候,可以放空自己的過去的知識,重新閱讀API。重新去思考這個問題。
就像自己以前做物理題目,腦子裏永遠別記憶題型,腦子裏只需要記住公式和原理,所有的題目都是去思考分析再解答,以不變應萬變!!而不是把題目歸類,再回憶改類題型的解題方法。
apply的“非改變this“的用法
相關推薦
apply的“非改變this“的用法
最終 image 重新 this 因此 his call ply 不變 說到apply,大家都是知道是改變this指向的,也都會立馬和call聯系在一起,MDN官網上也是如是說: 其實我們在平常使用call和apply的時候,都是想到他們的改變函數的this的功能, 正如
數組去重,call、apply、bind之間的區別,this用法總結
步驟 -- 之間 undefined 定義 ply clas turn 需要 一、數組去重,直接寫到Array原型鏈上。 1 //該方法只能去除相同的數字 不會去判斷24和‘24‘是不同的 所有數字和字符串數字是相同是重復的 2 Array.prototype
js改變this指向的方法:call apply bind
在函式中使用this function foo(c, d) { return this.a + this.b + c + d } global.a = 3 global.b = 4 // foo執行時,this沒有明確的指向,預設指向全域性物件global //
js繼承 - 建構函式繼承,call apply改變this指向 原型鏈繼承,混合繼承
1、建構函式繼承 function Person(name,age){ this.name = name; this.age = age; this.run = function(){ console.log('跑....'); } } functi
call()跟apply() 改變this指向
call跟applay call();跟執行函式()是一樣的效果 test.call()相當於test() call()跟apply()都是改變this的指向 兩者區別 傳參列表不同 Fun.call(新this指向,引數1,引數2,引數3,……) Fun.a
建構函式繼承,call apply改變this指向 原型鏈繼承,混合繼承
1、建構函式繼承 function Person(name,age){ this.name = name; this.age = age; this.run = function(){ console.log('跑....'); }
函式內this指向的不同場景,以及如何改變this的指向(bind,call,apply)
一. 對於接觸前端不太久的時候,相信會有個讓大家都感到頭疼的問題,沒錯那就是關於 this 的指向問題。我在剛接觸不久的時候也有過這樣一段時間,不過大家也不用擔心,相信大家只要把這篇部落格認真研究一遍,一定會對 this 會有一些新的認識。函式的呼叫方式決定了 this 的指
js中改變this指向的三個常用方法bind,call和apply
一.bind:說起bind,很多人都會想起jquery中的bind繫結方法,給元素繫結事件,今天所講的bind則是js的原生方法---可改變this的指向,下面我們來看演示:var name = 'sally'; function sayName(){ return
JavaScript 中call()、 apply()、 bind()改變this指向理解
最近開發的過程中遇到了this指向問題,首先想到的是call()、apply()、bind()三個方法,有些時候這三個方法確實是十分重要,現在我們就把他們的使用方法及異同點講解一下。 1、每個函式都包含三個非繼承而來的方法,call()方法、apply()方法和bind()方法 &nbs
call、apply、bind的用法
就是 his 指向 一次 cat math int urn bind 數組追加 //用apply拼接 var arr1=[12,‘name:foo‘,2048]; var arr2=[‘Joe‘,‘Hello‘]
分享點幹貨(此this非彼this)this的詳細解讀
使用 編程 var pan his () col 作者 分析 在javascript編程中,this關鍵字經常讓初學者感到迷惑,這裏,針對此this根據查閱的資料和個人的理解分享一下,純手打,大神勿噴。 首先先說一下this的指向,大致可以分為以下四種。 1.作為對象的方法
閉包,閉包用途,call、apply、bind 的用法
聲明 func 相互 function span all this 內存 bsp 什麽是閉包:“函數”和“函數內部能訪問到的變量(也叫環境)”的總和,就是一個閉包。JavaScript有兩種作用域:全局作用域和函數作用域。函數內部可以直接讀取全局變量。但是,在函數外部無法讀
Javascript的this用法
怎麽 對象 ret 函數調用 define func 作用 new tex 1.純粹的函數調用 <!DOCTYPE html> <html> <head> <meta charset="UTF-8">
JavaScript-改變this指向
第一個 改變 win 其中 cal 什麽 fun ole 方法 一、this指向的詳解 概括:this的指向到底是指向哪裏?通常來說,只有當函數執行的時候才可以確定this指向的到底是誰,簡單的也可以這麽說:this最終指向的是那個調用它的對象。 常見的一般有以下幾種情
this指向及改變this指向
1.全域性下的this指向window this.a=1; alert(window.a); //1 2.事件裡面的this指向事件源 var obj=document.getElementById('oDiv'); obj.onclick=function(){ alert(
React學習之旅----事件方法及改變this指向
import React, { Component } from 'react'; import '../assets/css/index.css' // react繫結屬性注意點 // class要換成className // for 要換成htmlFor // style class Home
javascript中this用法例項詳解
JavaScript中的this含義非常豐富,它可以是全域性物件,當前物件或者是任意物件,這都取決於函式的呼叫方式。函式有以下幾種呼叫方式:作為物件方法呼叫、作為函式呼叫、作為建構函式呼叫、apply或call呼叫。 物件方法呼叫 作為物件方法呼叫的時候,this會被繫結到該物件。 ?
淺談Java中的this用法
基本用法 1. this.變數名代表當前物件的成員變數。this.方法名代表當前物件的成員方法。this代表當前物件。 2. 當在內部類或匿名類中時,this代表其所在的內部類或匿名類,如果要用外部類的方法和變數,則加上外部類的類名。例如: public class He
Kotlin 匿名內部類對象引用當前Activity的this用法
abstract sea 參數 自己 ride eat 匿名內部類 轉載 nac 一,Kotlin中匿名內部類,引用Activity的this用法為 this@MainActivity (對應自己的Activity),還是上代碼吧 class Main17Activity
JavaScript挑戰練習(一)-改變this指向
一.this指向的詳解 概括:this的指向到底是指向哪裡?通常來說,只有當函式執行的時候才可以確定this指向的到底是誰,簡單的也可以這麼說:this最終指向的是那個呼叫它的物件。 常見的一般有以下幾種情況: 第一種:在一個函式中有this,但是函式沒有被上一級物件所呼叫,所以此時的t