浅谈js原型和原型链接_js原型链阮一峰
生活随笔
收集整理的這篇文章主要介紹了
浅谈js原型和原型链接_js原型链阮一峰
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、簡述
對于javascript 對象(函數) 原型和原型鏈的理解,其實不那么難,簡單來說,需要理解什么是原型,怎么訪問原型,什么是原型鏈,怎么通過原型鏈去訪問原型,就可以大概理清楚原型和原型鏈的基礎知識。
二、淺談
1、何為原型
在js引擎啟動的時候,其內核就生成了最基本的Object和Function的原型內容,也就是最原始最自然的代碼。
(1)Object的原型是一個對象變量,該對象變量存儲constructor、hasOwnProperty等屬性;
(2)Function的原型為自然的代碼片段,即 f(){[native code]};
2、如何訪問原型
舉個例子: 一個已聲明的函數fun、Object、Function它們都可以訪問到自己的原型內容,如下表格所示:
| 對象(函數) | 訪問原型方法 | 原型內容 |
|---|---|---|
| fun | fun.prototype | {constructor: {…},_proto_: {…}} |
| Object | Object.prototype | {constructor:{},hasOwnProperty: f,…} |
| Function | Function.prototype | f(){[native code]} |
3、實例(new操作之后)如何訪問原型
舉個例子: 實例化的函數f1和對象o1,通過下面的表格來說明如何訪問它們的原型內容:
| 實例 | 訪問原型方法 | 原型內容 |
|---|---|---|
| f1 | f1.__proto__ | {constructor: {…},__proto__} |
| o1 | o1.__proto__ | {constructor: {…},hasOwnProperty:f,…} |
4、何為原型鏈
(1)最簡單的理解:將實例、函數(對象)和原型之間關系起來就叫原型鏈。
(2)詳細一點的理解:實例通過__proto__屬性訪問原型,函數和對象通過prototype屬性訪問原型,函數原型的__proto__又可以訪問對象的原型等等,他們之間形成一個關系鏈,就是原型鏈。
其他的就需要讀者自己去看下面經典圖,該圖詳細清晰的描述實例、對象和其原型間的關系,筆者建議讀者在理解下圖的時候結合控制臺打印的結果進行分析,就可以大概了解js的原型和原型鏈了。
總結
以上是生活随笔為你收集整理的浅谈js原型和原型链接_js原型链阮一峰的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 第三次学JAVA再学不好就吃翔(part
- 下一篇: 第三次学JAVA再学不好就吃翔(part