javascript中new操作符的原理
javascript中的new是一個語法糖,對於學過c++,java 和c#等面向對象語言的人來説,以為js裏面是有類和對象的區別的,實現上js並沒有類,一切皆對象,比java還來的徹底
new的過程實際上是創建一個新對象,把新象的原型設置為構造器函數的原型,在使用new的過程中,一共有3個對象參與了協作,構造器函數是第一個對象,原型對象是二個,新生成了一個空對象是第三個對象,最終返回的是一個空對象,但這個空對象不是真空的,而是已經含有原型的`引用(__proto__)
步驟如下:
(1) 創建一個空對象obj
(2) 讓空對象的__proto__(IE沒有該屬性)成員指向了構造函數的prototype成員對象
(3) 使用apply調用構造器函數,this綁定到空對象obj上。
(4) 返回空對象obj
可以自己寫個函數替代使用new也是完全可以的,示例代碼如下:
function NEW_OBJECT(Foo){var obj={};obj.__proto__=otype;obj.__proto__tructor=Foo;y(obj,arguments)return obj;}
以上這篇淺談javascript中new操作符的原理就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持。
-
JavaScript與用户端教程
一頁面輸出1.頭部文件複製代碼代碼如下:2.複製代碼代碼如下:3.外部文件4.利用頁面ID的innerHtml複製代碼代碼如下:5.警告alert("廣州百匯物流有限公司");6.詢問複製代碼代碼如下:if(confirm("是否訪問我們的首頁")){alert("是的',前往");}else{alert("退出");}...
-
asp.net 操作INI文件讀寫類實例代碼
操作INI文件讀寫類實例代碼複製代碼代碼如下:usingSystem;usingropServices;using;using;namespaceCommon{//////INI文件讀寫類。///publicclassINIFile{publicstringpath;publicINIFile(stringINIPath){path=INIPath;}[DllImport("kernel32")]privatestaticex...
-
ASP.NET新型的投票結果顯示方法
一個投票功能模塊少不了查看投票結果,用進度條顯示各個投票結果可以起到一目瞭然的效果。以下是我的方法,請大家不吝賜教:1:做一張圖片用於做進度條,只需要很小的一個圖片就可以了,如高20px,寬1px。2:在要顯示進度條的單元格中插入image控件,其imageUrl設置為已做好的...
-
SQl常用增刪改查模板
篇一:SQl常用增刪改查SQL常用增刪改查語句增加現在有一張表,表(Test)裏面有三個字段,分別為sno,sname,age。舉例用一條增加SQL語句,插入一條數據進庫。語句:Insertinto表名value(‘數據1’,’數據2’,’數據3’)具體操作:Insertintotestvalues('test','te...
相關文章
- Dreamweaver中JavaScript行為操作使用方法
- My Happy Times During Winter Vacation國中英語作文
- Dreamweaver中JavaScript行為操作使用的總結
- 國中英語寫作範文:My Happy Times During Winter Vacation
- JavaScript在Android的WebView中parseInt函數轉換不正確
- javascript中setInterval的用法總結
- Dreamweaver中JavaScript行為操作
- javascript中String對象的slice()方法
- 關於 response方法的javascript asp教程第六課
- 關於ASP.NET使用JavaScript顯示信息提示窗口實現原理及代碼