日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

call/apply以及this指向的理解

發(fā)布時間:2023/12/2 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 call/apply以及this指向的理解 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

  javascript是面向?qū)ο蟮恼Z言,Function也是一種對象,有自己的屬性和方法。call和apply就是js函數(shù)自帶方法,掛在Fucntion.prototype上。


  一般調(diào)用某函數(shù)時,直接“函數(shù)名(參數(shù))”的寫法即可,函數(shù)內(nèi)部的this指向函數(shù)的調(diào)用者。

function add(a,b){console.log(this);return a b; } add(1,2) // 默認window調(diào)用,this指向windowvar math = {add:function(a,b){console.log(this);return a b;} } math.add(1,2) // this指向math

  call和apply的作用是給函數(shù)重新指定調(diào)用者,指定this的指向:

var name = "WINDOW"; var someone = {name: "yource" };/** 一般寫法 **/ function greet1(person) {var reply = "Hello, " person.name;console.log(reply) }greet1(someone); // Hello, yource/** 使用call/apply **/ function greet2() {var reply = "Hello, " this.name;console.log(reply) }greet2(); // Hello, WINDOW greet2.call(someone); // Hello, yource greet2.apply(someone); // Hello, yource

  call和apply的不同之處僅在于提供參數(shù)的方式:call使用一組參數(shù)列表,apply使用參數(shù)數(shù)組。

/*apply()方法*/ function.apply(thisObj[, argArray])/*call()方法*/ function.call(thisObj[, arg1[, arg2[, [,...argN]]]]);

  apply最多只能有兩個參數(shù):調(diào)用者thisObj和一個數(shù)組argArray。call可以接受多個參數(shù),第一個參數(shù)與apply一樣,后面則是一串參數(shù)列表。


更多專業(yè)前端知識,請上 【猿2048】www.mk2048.com

總結

以上是生活随笔為你收集整理的call/apply以及this指向的理解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。