JS apply用法總結(jié)和使用場(chǎng)景實(shí)例分析
本文實(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); //2c2.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空間
感興趣的朋友可以使用在線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ì)有所幫助。
相關(guān)文章:
1. asp讀取xml文件和記數(shù)2. XML入門(mén)的常見(jiàn)問(wèn)題(一)3. 低版本IE正常運(yùn)行HTML5+CSS3網(wǎng)站的3種解決方案4. 阿里前端開(kāi)發(fā)中的規(guī)范要求5. html小技巧之td,div標(biāo)簽里內(nèi)容不換行6. 告別AJAX實(shí)現(xiàn)無(wú)刷新提交表單7. IE6/IE7/IE8/IE9中tbody的innerHTML不能賦值的完美解決方案8. 不同瀏覽器對(duì)XML的解析是不同的9. 讀寫(xiě)xml文件的2個(gè)小函數(shù)10. webpack高級(jí)配置與優(yōu)化詳解
