昨天阿丹传了一个javascript中的重载例子给我,感觉不错.虽然到现在还是不太明白.怎么实现的.但还是贴出来.
实现setTimeout传object对象
看以下代码实现向里面的function 传参数
<script> <BR>var _st = window.setTimeout; <BR>window.setTimeout = function(fRef, mDelay) { <BR> if(typeof fRef == 'function'){ <BR> var argu = Array.prototype.slice.call(arguments,2); <BR> var f = (function(){ fRef.apply(null, argu); }); <BR> return _st(f, mDelay); <BR> } <BR> return _st(fRef,mDelay); <BR>} <BR>function test(x){ <BR> alert(x); <BR>} <BR>window.setTimeout(test,1000,'fason'); <BR></script>
call方法JScript参考中的说明:调用一个对象的一个方法,以另一个对象替换当前对象。call([thisObj[,arg1[, arg2[, [,.argN]]]]]),但是没有示例
apply方法JScript参考中的说明:应用某一对象的一个方法,用另一个对象替换当前对象。apply([thisObj[,argArray]])
实际上这两个的作用几乎是相同的,要注意的地方是call(thisObj[,arg1[, arg2[,)中的arg参数可以是变量,而apply([thisObj[,argArray]])中的参数为数组集合。
今早又看到一篇利用call实现继承的例子.呵呵..也一并贴出来.这个例子比较简单.就算是由浅入深吧
<script> <br><br> function father(){//父类 <br><br> var self=this; //私有变量,子类里不会继承! <br><br> var var_private="private variable"; //私有变量 <br><br> this.var_public="public variable"; //公有变量 <br><br> <br><br> this.author="xling"; <br><br> this.test=function(msg){ //公有方法 <br><br> alert("该方法位于父类 :" + msg + "\n" + self.author); <br><br> } <br><br> <br><br> var test2=function(){ //私有方法,子类不能调用 <br><br> alert("这个方法是父类的私有方法"); <br><br> } <br><br> } <br><br> <br><br> function father2(){ <br><br> this.email="xlingFairy#hotmail.com"; <br><br> } <br><br> <br><br> function suber(){//子类 <br><br> father.call(this);//通过这一句来继承父类(father)类的可见变量及方法(this) <br><br> } <br><br> <br><br> function sun(){ <br><br> suber.call(this); <br><br> father2.call(this);//和上面的一句放在一起,實現多重繼承!爽啊! <br><br> } <br><br> <br><br> var mySuber=new suber(); <br><br> mySuber.test("参数是从子类的实例里传入的"); <br><br> //mySuber.test2(); //这一句会发生错误码,因为test2是父类的私有类 <br><br> alert("父类的私有变量,子类不能读取:" + mySuber.var_private); <br><br> alert("父类的公有变量,子类可以读取" + mySuber.var_public); <br><br> <br><br> var mySun=new sun(); <br><br> mySun.test("这个是从孙子级的实例里传入的参数"); <br><br> alert("父类的私有变量,子类不能读取:" + mySun.var_private); <br><br> alert("父类的公有变量,子类可以读取" + mySun.var_public); <br><br> alert(mySun.email); <br><br></script>

Python和JavaScript在開發環境上的選擇都很重要。 1)Python的開發環境包括PyCharm、JupyterNotebook和Anaconda,適合數據科學和快速原型開發。 2)JavaScript的開發環境包括Node.js、VSCode和Webpack,適用於前端和後端開發。根據項目需求選擇合適的工具可以提高開發效率和項目成功率。

是的,JavaScript的引擎核心是用C語言編寫的。 1)C語言提供了高效性能和底層控制,適合JavaScript引擎的開發。 2)以V8引擎為例,其核心用C 編寫,結合了C的效率和麵向對象特性。 3)JavaScript引擎的工作原理包括解析、編譯和執行,C語言在這些過程中發揮關鍵作用。

JavaScript是現代網站的核心,因為它增強了網頁的交互性和動態性。 1)它允許在不刷新頁面的情況下改變內容,2)通過DOMAPI操作網頁,3)支持複雜的交互效果如動畫和拖放,4)優化性能和最佳實踐提高用戶體驗。

C 和JavaScript通過WebAssembly實現互操作性。 1)C 代碼編譯成WebAssembly模塊,引入到JavaScript環境中,增強計算能力。 2)在遊戲開發中,C 處理物理引擎和圖形渲染,JavaScript負責遊戲邏輯和用戶界面。

JavaScript在網站、移動應用、桌面應用和服務器端編程中均有廣泛應用。 1)在網站開發中,JavaScript與HTML、CSS一起操作DOM,實現動態效果,並支持如jQuery、React等框架。 2)通過ReactNative和Ionic,JavaScript用於開發跨平台移動應用。 3)Electron框架使JavaScript能構建桌面應用。 4)Node.js讓JavaScript在服務器端運行,支持高並發請求。

Python更適合數據科學和自動化,JavaScript更適合前端和全棧開發。 1.Python在數據科學和機器學習中表現出色,使用NumPy、Pandas等庫進行數據處理和建模。 2.Python在自動化和腳本編寫方面簡潔高效。 3.JavaScript在前端開發中不可或缺,用於構建動態網頁和單頁面應用。 4.JavaScript通過Node.js在後端開發中發揮作用,支持全棧開發。

C和C 在JavaScript引擎中扮演了至关重要的角色,主要用于实现解释器和JIT编译器。1)C 用于解析JavaScript源码并生成抽象语法树。2)C 负责生成和执行字节码。3)C 实现JIT编译器,在运行时优化和编译热点代码,显著提高JavaScript的执行效率。

JavaScript在現實世界中的應用包括前端和後端開發。 1)通過構建TODO列表應用展示前端應用,涉及DOM操作和事件處理。 2)通過Node.js和Express構建RESTfulAPI展示後端應用。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具