Javascript的call、apply的理解
call 方法在使用一個指定的this值和若干個指定的參數值的前提下調用某個函數或方法.
注意:該函數的語法與 apply() 方法的語法幾乎完全相同,唯一的'區別在於,apply()方法接受的是一個參數數組,而 call()方法接受的是一系列參數列表。
瞭解完這兩個方法的概念後,我們來一步一步理解他們的應用.
改變方法內this的指向
我們先來看下面這個例子
var name = "編程的人";var age = 1;var person = {name:"公眾號:bianchengderen",age:20}function say(){("我叫:"++",年齡:"+)}say();// 我叫: 編程的人,年齡: (person);//年齡:20
這兩種調用執行的方式不一樣,他們的結果也不一樣,不一樣在於say方法裏面的this指向了不同的對象,第一次執行指向的是window,而我們以call方式執行,將say方法裏面的this指向了person對象.
這是不是有點冒充別人的感覺.那我們這樣有什麼作用了?當然自己可以多多想想,到底能做什麼! 我們繼續往下面走.
實現繼承機制繼承,這是高級面向對象的一種特性,用call我們可以將JAVASCRIPT有這種特點.
在看下面這個例子之前,必須好好理解上面的例子.
function Person(){ = "編程的人"; = 20;}function Student(){(this);ol = "地球";}var student = new Student();//下面打印出來: 編程的人,20,地球(,,ol);
在這個例子裏,Student函數繼承了Person的name和age屬性,就是通過(this)來實現,理解上面的例子後,應該是不難理解的.所以Student即擁有了Person的特點,又有自己的個性,比如這個ol.
在這裏,我們沒有涉及到加入參數的傳遞,是方便大家的理解,需要加入參數傳遞,大家可以敲代碼試一試,看看效果怎麼樣!
我們就先講這兩個例子吧,之後再進行深入學習。
-
如何理解Javascript的caller,callee,call,apply區別
在提到上述的概念之前,首先想説説javascript中函數的隱含參數:argumentsarguments該對象代表正在執行的函數和調用它的函數的參數。[function.]arguments[n]參數function:選項。當前正在執行的Function對象的名字。n:選項。要傳遞給Function對象的從0開始的參數值...
-
javascript 日期類型學習筆記
1.創建日期對象複製代碼代碼如下:varnow=newDate();//獲得當前系統日期和時間varsomeDate=newDate(e("May25,2012"));varsomeDate=newDate("May25,2012");//與上相同varsomeDate=newDate((2010,0));//GMT時間2010年1月1日凌晨0時varsomeDate=newDate(2010,0);/...
-
JavaScript 函數表達式
JavaScript中創建函數主要有兩種方法:函數聲明和函數表達式。這兩種方式都有不同的適用場景。這篇筆記主要關注的是函數表達式的幾大特點以及它的使用場景,下面一一描述。主要特點可選的函數名稱函數名稱是函數聲明的必需組成部分,這個函數名稱相當於一個變量,新定...
-
如何理解Javascript的caller,callee,call,apply區別
在提到上述的概念之前,首先想説説javascript中函數的隱含參數:argumentsarguments該對象代表正在執行的函數和調用它的函數的參數。[function.]arguments[n]參數function:選項。當前正在執行的Function對象的名字。n:選項。要傳遞給Function對象的從0開始的參數值...
相關文章
- 如何理解Javascript的caller,callee,call,apply區別
- 如何理解Javascript的caller,callee,call,apply區別
- 如何理解Javascript的caller,callee,call,apply區別
- 如何理解Javascript的caller,callee,call,apply區別
- 如何理解Javascript的caller,callee,call,apply區別
- 如何理解Javascript的caller,callee,call,apply區別
- 如何理解Javascript的caller,callee,call,apply區別
- 如何理解Javascript的caller,callee,call,apply區別
- 如何理解Javascript的caller,callee,call,apply區別
- 如何理解Javascript的caller,callee,call,apply區別