Javascript的一些解釋
1.原型(prototype)
每個物件都可以連線到一個圓形物件,並且它可以從中繼承屬性,所有通過字面量建立的物件都連線到Object.prototype,它是Javascript中的標配物件。
當你建立一個新物件時,你可以選擇某個物件作為它的原型。Javascript提供的實現機制雜亂而複雜,但其實可以被明顯地簡化。
我們將給Object增加一個create方法。這個方法建立一個使用原物件作為原型的新物件。
if(typeof Object.beget !=='function'){
Object.create=function(o){
var F=function(){};
F.prototype=o;
return new F();
}
}
var another_stooge=Object.create(stooge);
原型連線在更新是不起作用的。當我們對某個物件做出改變時,不會觸及該物件的原型:
another_stooge['first-name']='Harry';
another_stooge['middle-name']='Moses';
another_stooge.nickname='Moe';
原型連線只有在檢索值的時候才被用到。如果我們嘗試獲取物件的某個屬性值,但該物件沒有此屬性名,那麼Javascript會是這從原型物件中獲取屬性值。如果那個原型物件也沒有該屬性,那麼再從它的原型尋照,依此類推,知道該過程最後到達終點Object.prototype。如果想要的屬性完全不存在於原型鏈中,那麼結果就是undefined值。這個過程稱為委託。
原型關係是一種動態的關係。如果新增一個新的屬性到原型,該屬性會立即對所有基於該原型建立的物件可見。
來源:Javascript語言精粹 p22
2.反射(Reflection)
檢查物件並確定物件有什麼屬性是很容易的事情,是要試著去檢索該屬性並驗證取得的值。typeof
操作符對確定屬性的型別很有幫助。
var flight={number:876214,status:'in time',arrival:{country:'china',city:'chongqing'}}
typeof flight.number //'number'
typeof flight.status //'string'
typeof flight.arrival //'object'
typeof flight.manifest //'undefined'
請注意原型鏈中的任何屬性都會產生值:
typeof flight.toString //'function'
typeof flight.constructor //'function'
另外可以使用hasOwnProperty方法,如果物件擁有獨有的屬性,它將返回true,該方法不會檢查原型鏈。
flight.hasOwnProperty('number'); //true
flight.hasOwnProperty('constructor'); //false
相關文章
- oracle一些效能檢視的解釋Oracle
- undo日誌一些解釋
- JavaScript 中對記憶體的一些瞭解JavaScript記憶體
- 關於排列熵的一些理解與解釋熵
- [譯]JavaScript響應式的最佳解釋JavaScript
- JavaScript註釋:單行註釋和多行註釋詳解JavaScript
- 編譯執行、解釋執行的一些思考編譯
- 貧血,充血模型的解釋以及一些經驗模型
- 影象處理中的一些基本問題解釋
- [JavaScript] {}解釋為語句塊,物件的toStringJavaScript物件
- 一些有趣的Javascript技巧JavaScript
- redhat ntsysv中一些服務的簡單解釋(轉)Redhat
- redhat ntsysv中一些服務的簡單解釋(zt)Redhat
- 用垃圾回收機制解釋JavaScript中的閉包JavaScript
- [譯] 以 Vue 為例,解釋 JavaScript 的反應性VueJavaScript
- 生動詳細解釋javascript的冒泡和捕獲JavaScript
- 向非程式設計師解釋JavaScript程式設計師JavaScript
- 向非程式設計師解釋 JavaScript程式設計師JavaScript
- 常用的一些javascript小技巧JavaScript
- 最近讀的javascript,一些文章JavaScript
- Android Intent.FLAG_NEW_TASK詳解,包括其他的標記的一些解釋AndroidIntent
- [譯] 以申請大學流程來解釋 JavaScript 的 filter 方法JavaScriptFilter
- JavaScript 中的一些奇怪問題JavaScript
- JavaScript深拷貝的一些坑JavaScript
- 一些簡單的JavaScript加密/解密JavaScript加密解密
- JavaScript的一些常見誤區JavaScript
- 解決微信小程式登入與釋出的一些問題微信小程式
- JavaScript 註釋JavaScript
- 完美解釋 Javascript 響應式程式設計原理JavaScript程式設計
- 詳解BetterZip對壓縮包註釋的一些相關小功能
- Java中 識別符號、關鍵字、保留字的一些解釋Java符號
- 一些sql語句的詳細解釋[更新:2006.5.23]SQL
- 國際化程式設計中Locale相關概念的一些解釋程式設計
- 總結下 javascript 中的一些小技巧JavaScript
- 一些 JavaScript 中的程式碼小技巧JavaScript
- JavaScript中this的一些應用場景JavaScript
- JavaScript中this的一些怪異現象JavaScript
- javascript的註釋怎麼寫JavaScript