JS apply用法總結(jié)和使用場景實例分析
本文實例講述了JS apply用法總結(jié)和使用場景。分享給大家供大家參考,具體如下:
apply是綁定this到指定函數(shù)或類,也可以說把函數(shù)或者類的方法和屬性給到當(dāng)前作用域。
1,使用apply實現(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實現(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使用時傳參規(guī)則
fn.apply(this,array)
在執(zhí)行過程中,array參數(shù)會被轉(zhuǎn)化成一個一個參數(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代碼運行工具:http://tools.jb51.net/code/HtmlJsRun測試上述代碼運行效果。
更多關(guān)于JavaScript相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《javascript面向?qū)ο笕腴T教程》、《JavaScript錯誤與調(diào)試技巧總結(jié)》、《JavaScript數(shù)據(jù)結(jié)構(gòu)與算法技巧總結(jié)》、《JavaScript遍歷算法與技巧總結(jié)》及《JavaScript數(shù)學(xué)運算用法總結(jié)》
希望本文所述對大家JavaScript程序設(shè)計有所幫助。
相關(guān)文章:
1. Java Media Framework 基礎(chǔ)教程2. 解決vue頁面刷新,數(shù)據(jù)丟失的問題3. Python 忽略文件名編碼的方法4. springboot項目整合druid數(shù)據(jù)庫連接池的實現(xiàn)5. JavaEE SpringMyBatis是什么? 它和Hibernate的區(qū)別及如何配置MyBatis6. python 讀txt文件,按‘,’分割每行數(shù)據(jù)操作7. android studio實現(xiàn)簡單的計算器(無bug)8. 在Mac中配置Python虛擬環(huán)境過程解析9. Python趣味挑戰(zhàn)之用pygame實現(xiàn)簡單的金幣旋轉(zhuǎn)效果10. Python中的min及返回最小值索引的操作
