亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

詳解apply的用處

CoyPan / 3164人閱讀

摘要:舉幾個(gè)簡(jiǎn)單的例子的用途改造一下上面的例子調(diào)用一個(gè)函數(shù)的方法有很多可以用函數(shù)表達(dá)式調(diào)用,也可以直接調(diào)用。還有一種方法是用調(diào)用接受兩個(gè)參數(shù),第一個(gè)參數(shù)是函數(shù)運(yùn)行時(shí)指向的第二個(gè)參數(shù)是一個(gè)數(shù)組里面存放函數(shù)的參數(shù)。

先談this
關(guān)于this的指向就不細(xì)說(shuō)了,網(wǎng)上有無(wú)數(shù)博客以及you don"t kown js這類書講的已經(jīng)很詳細(xì)了這里就不炒冷飯了。
舉幾個(gè)簡(jiǎn)單的例子
function foo() {
    console.log(this);
}
    
foo() //window

var obj = {
    job: "doctor",
    show: function() {
        console.log(this.job); //job
        console.log(this === obj); //true
    }
}
obj.show();
apply的用途
改造一下上面的例子
var obj = {
    job: "doctor",
}
function foo(str) {
    console.log(this); //obj
    console.log(str);  //hi
}
foo.apply(obj,["hi"]);
調(diào)用一個(gè)函數(shù)的方法有很多可以用函數(shù)表達(dá)式調(diào)用,也可以直接調(diào)用。還有一種方法是用apply調(diào)用
apply接受兩個(gè)參數(shù),第一個(gè)參數(shù)是函數(shù)運(yùn)行時(shí)指向的this,第二個(gè)參數(shù)是一個(gè)數(shù)組里面存放函數(shù)的參數(shù)。
也就是我們可以手動(dòng)更改this的指向,再次看上面的代碼我們讓函數(shù)foo中的this指向了obj,還接受了一個(gè)字符串"hi"
那么反過(guò)來(lái)我們是否可以在foo中對(duì)obj的屬性進(jìn)行賦值呢?答案是肯定的
再次更改代碼
var obj = {
    job: "doctor",
}
function foo(str) {
    this.books = ["One Hundred Years of Solitude", "Gone with the wind"]
}
foo.apply(obj,["hi"]);
console.log(obj); // {job: "doctor", books: Array(2)}
apply的用處無(wú)所不在,比如將nodelist轉(zhuǎn)為數(shù)組,類型檢測(cè)這些網(wǎng)上同樣有很多例子
apply與函數(shù)式編程
如果我們有聲明一個(gè)數(shù)組并想得到數(shù)組中每一個(gè)元素的值我們可以這么做
var arr = ["katana", "chunks", "shurken"];
for(var i = 0;i
但是這種聲明式的寫法是不是有些丑陋?讓我們換一種寫法
function forEach(list, callback) {
    for(var n = 0; n           
               
                                           
                       
                 

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/93507.html

相關(guān)文章

  • Js apply()使用詳解

    摘要:方法詳解我在一開始看到的函數(shù)和時(shí)非常的模糊看也看不懂最近在網(wǎng)上看到一些文章對(duì)方法和的一些示例總算是看的有點(diǎn)眉目了在這里我做如下筆記希望和大家分享如有什么不對(duì)的或者說(shuō)法不明確的地方希望讀者多多提一些意見以便共同提高主要我是要解決一下幾個(gè)問(wèn)題和 Js apply方法詳解我在一開始看到j(luò)avascript的函數(shù)apply和call時(shí),非常的模糊,看也看不懂,最近在網(wǎng)上看到一些文章對(duì)apply...

    iOS122 評(píng)論0 收藏0
  • Angular1.x中ngModel$render詳解

    摘要:我們下面來(lái)看看的源碼這是其中一個(gè),在不同的指令下的代碼都不太一樣,但是其作用基本一致,但是從這里我們就可以看出的到底在干什么事了。 這篇文章是我兩年前在博客園寫的,現(xiàn)在移植過(guò)來(lái),不過(guò)Angular 1.x 在國(guó)內(nèi)用的人已經(jīng)不多了,希望能幫助到有需要的人 在我開始著手 ngModel 的領(lǐng)域時(shí)候,有一個(gè)問(wèn)題很令我糾結(jié),那就是 $render 到底是做什么的呢?查了很多資料都只是簡(jiǎn)單的描述...

    Euphoria 評(píng)論0 收藏0
  • 怎樣使用this

    摘要:構(gòu)造器的調(diào)用這其實(shí)很簡(jiǎn)單,就是使用創(chuàng)建的是一個(gè)對(duì)象,而不是一個(gè)函數(shù)這里的指向的就是上的。但需要注意在構(gòu)造器內(nèi)不能顯示的返回一個(gè)對(duì)象否則你的實(shí)例化就會(huì)被破壞。 this的使用 關(guān)于js里面有哪些難點(diǎn),艸,js里面全是難點(diǎn)。。。什么閉包,原型,函數(shù),對(duì)象,類型檢測(cè),this。。。但是作為一名正統(tǒng)的前端愛好者而言---這點(diǎn)痛算什么。今天我們來(lái)解決this這個(gè)點(diǎn)。由于牽扯到this,則必定會(huì)牽...

    cppowboy 評(píng)論0 收藏0
  • Cordova 打包簽名 Android release app 過(guò)程詳解及cordova創(chuàng)建app

    摘要:很久之前就想寫這篇博客,但是一直沒(méi)有時(shí)間,今天抽空來(lái)整理一下,總結(jié)一下的創(chuàng)建打包簽名。 很久之前就想寫這篇博客,但是一直沒(méi)有時(shí)間,今天抽空來(lái)整理一下,總結(jié)一下cordova的創(chuàng)建、打包、簽名apk。對(duì)于cordova所需的打包環(huán)境,如node,cordova的安裝,這里就不再多說(shuō),度娘上有很多... 1.cordova命令創(chuàng)建一個(gè)項(xiàng)目 cordova create testApp co...

    objc94 評(píng)論0 收藏0
  • 20190725筆記-apply詳解

    摘要:語(yǔ)法參數(shù)這個(gè)對(duì)象將替代類里的對(duì)象可選在函數(shù)運(yùn)行時(shí)使用的值。如果該參數(shù)的值為或,則表示不需要傳入任何參數(shù)。更簡(jiǎn)單的講就是將和傳入函數(shù)執(zhí)行。 學(xué)了那么久前端,對(duì)apply、call這兩個(gè)函數(shù)的用法,還不是很掌握。今天看了很多網(wǎng)上的文章,我總結(jié)和歸納下用法。 Function.prototype.apply() apply() 方法調(diào)用一個(gè)具有給定this值的函數(shù),以及作為一個(gè)數(shù)組(或類似數(shù)...

    wzyplus 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<