當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
通过实例理解javascript 的call()与apply()
生活随笔
收集整理的這篇文章主要介紹了
通过实例理解javascript 的call()与apply()
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
先前使用javascript多是為了表單驗證,最多是實現(xiàn)客戶端的交互功能。基本不用call、apply之類的難懂方法。
現(xiàn)在流行富客戶端了。javascript也越來越對象化了。不得不學習一下!
一、方法的定義
call方法:
語法:call([thisObj[,arg1[, arg2[,?? [,.argN]]]]])
定義:調(diào)用一個對象的一個方法,以另一個對象替換當前對象。
說明:
call 方法可以用來代替另一個對象調(diào)用一個方法。call 方法可將一個函數(shù)的對象上下文從初始的上下文改變?yōu)橛?thisObj 指定的新對象。
如果沒有提供 thisObj 參數(shù),那么 Global 對象被用作 thisObj。
apply方法:
語法:apply([thisObj[,argArray]])
定義:應用某一對象的一個方法,用另一個對象替換當前對象。
說明:
如果 argArray 不是一個有效的數(shù)組或者不是 arguments 對象,那么將導致一個 TypeError。
<html>?? <head>?? <script?language="javascript">?? /**定義一個animal類*/?? function?Animal(){?? ????this.name?=?"Animal";?? ????this.showName?=?function(){?? ????????alert(this.name);?? ????}?? }?? /**定義一個Cat類*/?? function?Cat(){?? ????this.name?=?"Cat";?? }?? ?? /**創(chuàng)建兩個類對象*/?? var?animal?=?new?Animal();?? var?cat?=?new?Cat();?? ?? //通過call或apply方法,將原本屬于Animal對象的showName()方法交給當前對象cat來使用了。?? //輸入結(jié)果為"Cat"?? animal.showName.call(cat,",");?? //animal.showName.apply(cat,[]);?? ??? ?? </script>?? </head>?? <body></body>?? </html>??
以上代碼無論是采用animal.showName.call或是animal.showName.apply方法,運行的結(jié)果都是輸出一個"Cat"的字符串。說明showName方法的調(diào)用者被換成了cat對象,而不是最初定義它的animal了。這就是call和apply方法的妙用!
三、小結(jié):
call和apply方法通常被用來實現(xiàn)類似繼承一樣的功能,以達到代碼復用的功效。它們的區(qū)別主要體現(xiàn)在參數(shù)上。
現(xiàn)在流行富客戶端了。javascript也越來越對象化了。不得不學習一下!
一、方法的定義
call方法:
語法:call([thisObj[,arg1[, arg2[,?? [,.argN]]]]])
定義:調(diào)用一個對象的一個方法,以另一個對象替換當前對象。
說明:
call 方法可以用來代替另一個對象調(diào)用一個方法。call 方法可將一個函數(shù)的對象上下文從初始的上下文改變?yōu)橛?thisObj 指定的新對象。
如果沒有提供 thisObj 參數(shù),那么 Global 對象被用作 thisObj。
apply方法:
語法:apply([thisObj[,argArray]])
定義:應用某一對象的一個方法,用另一個對象替換當前對象。
說明:
如果 argArray 不是一個有效的數(shù)組或者不是 arguments 對象,那么將導致一個 TypeError。
如果沒有提供 argArray 和 thisObj 任何一個參數(shù),那么 Global 對象將被用作 thisObj, 并且無法被傳遞任何參數(shù)。
二、例子程序:
以上代碼無論是采用animal.showName.call或是animal.showName.apply方法,運行的結(jié)果都是輸出一個"Cat"的字符串。說明showName方法的調(diào)用者被換成了cat對象,而不是最初定義它的animal了。這就是call和apply方法的妙用!
三、小結(jié):
call和apply方法通常被用來實現(xiàn)類似繼承一樣的功能,以達到代碼復用的功效。它們的區(qū)別主要體現(xiàn)在參數(shù)上。
總結(jié)
以上是生活随笔為你收集整理的通过实例理解javascript 的call()与apply()的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 自定义取值距离的javascript r
- 下一篇: JAR软件转APK,在线转换器