當前位置:才華齋>設計>網頁設計>

Javascript的call、apply的理解

網頁設計 閱讀(1.49W)

call 方法在使用一個指定的this值和若干個指定的引數值的前提下呼叫某個函式或方法.

Javascript的call、apply的理解

注意:該函式的語法與 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.

在這裡,我們沒有涉及到加入引數的傳遞,是方便大家的理解,需要加入引數傳遞,大家可以敲程式碼試一試,看看效果怎麼樣!

我們就先講這兩個例子吧,之後再進行深入學習。