摘要:要想記得牢,首先要記住它存在的目的?;蚩梢钥闯龊褪菫榱藙討B(tài)改變而出現(xiàn)的,如果一個沒有某個方法,而別的有,那么就用得上和了。那和有什么區(qū)別呢請看下邊這個例子很容易就可以看出和的區(qū)別就是傳參數(shù)的方式不同。
要想記得牢,首先要記住它存在的目的。
在javascript OPP中,我們經(jīng)常這樣定義:
function person(){} person.prototype = { name: "jack", say: function(){ console.log("my name is" + this.name) } } var goodPerson = new person() goodPerson.say() // 打印 my name is jack
現(xiàn)在有一個對象dog = {name:"wangwang"},這條狗也想會說話(擁有say方法),那么我們可以這樣goodPerson.say.call(dog) 這樣dog就可以說話了。
var dog = { name:"wangwang" } goodPerson.say.apply(dog) // my name is wangwang 或 goodPerson.say.call(dog) // my name is wangwang
可以看出call和apply是為了動態(tài)改變this而出現(xiàn)的,如果一個object沒有某個方法,而別的object有,那么就用得上call和apply了。
那call 和 apply有什么區(qū)別呢?
請看下邊這個例子:
function add (a = 1, b = 1) { return a + b } function sub (a = 1, b = 1) { return a - b } add() // 2 sub() // 0 add.call(sub, 2, 2) // 4 add.apply(sub,[2,2]) // 4 sub.call(add, 3, 2) // 1 sub.apply(add, [3, 2]) // 1
so,很容易就可以看出call和apply的區(qū)別就是傳參數(shù)的方式不同。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/93071.html
摘要:函數(shù)調(diào)用方法一般我們是這樣調(diào)用函數(shù)的和現(xiàn)在我們說一說方法和方法。他們都是調(diào)用一個對象的方法,以另一個對象替換當(dāng)前對象。例如方法在上面的例子中,,意思就是用來替換。和方法比較類似,其作用都是改變上下文的。 call(), apply(), bind() 函數(shù)調(diào)用方法 一般我們是這樣調(diào)用函數(shù)的: function add(x){ console.log(x) } add(2)//2...
摘要:如果該參數(shù)的值為或,則表示不需要傳入任何參數(shù),從開始可以使用類數(shù)組對象。當(dāng)使用操作符調(diào)用綁定函數(shù)時,該參數(shù)無效。當(dāng)綁定函數(shù)被調(diào)用時,這些參數(shù)將置于實參之前傳遞給被綁定的方法。 在了解call,apply之前需要先了解下javascrit中this指向 this的指向在ES5里面,this永遠(yuǎn)指向最后調(diào)用它的那個對象舉個栗子: var name = outerName; function...
摘要:回調(diào)函數(shù)中調(diào)用在回調(diào)函數(shù)中一般有兩種情況回調(diào)函數(shù)為匿名函數(shù)時,回調(diào)函數(shù)的會指向,需要對回調(diào)函數(shù)?;卣{(diào)函數(shù)為箭頭函數(shù)時,回調(diào)函數(shù)的會指向他的直接上層。 淺談-this this簡單而又神秘,使用場景多變而又復(fù)雜,這造就了它成為了初級javascript開發(fā)人員不愿接觸的東西,高級javascript都想探究的東西。文本亦是對this的致敬。 this是什么? this是當(dāng)前執(zhí)行環(huán)境...
摘要:什么是函數(shù)引用的原話函數(shù)是一組可以隨時隨地運行的語句。函數(shù)是由這樣的方式進(jìn)行聲明的關(guān)鍵字函數(shù)名一組參數(shù),以及置于括號中的待執(zhí)行代碼。 什么是函數(shù)? 引用 W3School 的原話: 函數(shù)是一組可以隨時隨地運行的語句。 函數(shù)是 ECMAScript 的核心。 函數(shù)是由這樣的方式進(jìn)行聲明的:關(guān)鍵字 function、函數(shù)名、一組參數(shù),以及置于括號中的待執(zhí)行代碼。 函數(shù)的基本語法是這樣的:...
摘要:想要解決這樣的問題的話,可以借助構(gòu)造函數(shù)也可以叫做偽造對象或經(jīng)典繼承。這種方式實現(xiàn)非常簡單,就是在子對象的構(gòu)造函數(shù)中調(diào)用父對象的構(gòu)造函數(shù)。 原型式繼承 原型式繼承,就是一定一個函數(shù),該函數(shù)中創(chuàng)建一個臨時性的構(gòu)造函數(shù),將作為參數(shù),傳入的對象作為這個構(gòu)造函數(shù)的原型,最后返回這個構(gòu)造函數(shù)的實例對象 /*定義函數(shù):用于實現(xiàn)對象之間的繼承 參數(shù): obj:表示繼承關(guān)系中的父級對象...
閱讀 663·2023-04-26 02:03
閱讀 1037·2021-11-23 09:51
閱讀 1111·2021-10-14 09:42
閱讀 1738·2021-09-13 10:23
閱讀 927·2021-08-27 13:12
閱讀 839·2019-08-30 11:21
閱讀 1001·2019-08-30 11:14
閱讀 1041·2019-08-30 11:09