您好,登錄后才能下訂單哦!
本文實(shí)例講述了JS apply用法總結(jié)和使用場(chǎng)景。分享給大家供大家參考,具體如下:
apply是綁定this到指定函數(shù)或類(lèi),也可以說(shuō)把函數(shù)或者類(lèi)的方法和屬性給到當(dāng)前作用域。
1,使用apply實(shí)現(xiàn)繼承
function A(name, age){ this.name = name; this.age = age; } function B(name, age, time){ A.apply(this,[name]) //這里的name必須加上[] } const b = new B('繼承'); console.log(b)
2,使用apply實(shí)現(xiàn)多重繼承
function Class10(){ this.showSub = function(a,b){ alert(a - b); } } function Class11(){ this.showAdd = function(a,b){ alert(a + b); } } function Class12(){ Class10.apply(this); Class11.apply(this); // Class10.call(this); //Class11.call(this); } var c2 = new Class12(); c2.showSub(3,1); //2 c2.showAdd(3,1); //4
3,apply使用時(shí)傳參規(guī)則
fn.apply(this,array)
在執(zhí)行過(guò)程中,array參數(shù)會(huì)被轉(zhuǎn)化成一個(gè)一個(gè)參數(shù)傳遞給函數(shù)fn
fn.apply(this,[params1,params2,...]) //相當(dāng)于 fn(params1,params2,...)//這里的this指向執(zhí)行fn函數(shù)的作用域
4,apply綁定this和綁定null
function C(name, age){ console.log(this.name) } var name = 'windowname' var myObject = {name:"myA",age:"myB"}; C.apply(myObject) //myA C.apply(null)//windowname function D(){ this.name = '我是D空間' C.apply(this) } D();//我是D空間
感興趣的朋友可以使用在線(xiàn)HTML/CSS/JavaScript代碼運(yùn)行工具:http://tools.jb51.net/code/HtmlJsRun測(cè)試上述代碼運(yùn)行效果。
更多關(guān)于JavaScript相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《javascript面向?qū)ο笕腴T(mén)教程》、《JavaScript錯(cuò)誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》及《JavaScript數(shù)學(xué)運(yùn)算用法總結(jié)》
希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。