當前位置:
首頁 >
JavaScript 中的原型(总则)
發布時間:2025/3/20
29
豆豆
生活随笔
收集整理的這篇文章主要介紹了
JavaScript 中的原型(总则)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1. 一切函數都是對象 2. 一切對象都是由函數創建的,所有函數都是由Function創建的,每個函數都是一個Function對象。 3. 對象.__proto__ === 函數.prototype 4. 函數有一個prototype屬性,也是對象,這個對象默認的有一個constructor屬性,指向函數本身 5. 對象都有 __proto__ 屬性 ,指向創建出這個對象的函數的prototype
---------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------
1. Object.prototype 也是對象,但是Object.prototype.__proto__ === null 2. 函數也是對象,函數對象.__proto__ === 創建出這個對象的函數(Function).prototype 3. Function也是對象,也有__proto__ 所以:Function.__proto__ === Function.prototype,自己創建自己 ---------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------- 1. function Foo(){}//構造函數 2. var f1 = new Foo();//f1對象 由Foo()創建 3. f1.__proto__ === Foo.prototype 4. 一切函數都是對象,Foo構造函數也是對象,由Function創建,所以,Foo.__proto__ === Function.prototype 例子:var f2 = new Function('x','y','return x+y;'); 5. Foo.prototype當然是對象,所以,Foo.prototype.__proto__ === Object.prototype, 例子:var obj = new Object(); 6. 特例:Object.prototype也是對象,但是 Object.prototype.__proto__ === null 7. var obj1 = new Object();//或者簡寫:var obj1 = {}; 8. obj1.__proto__ === Object.prototype //對象的 __proto__ 指向 創建出這個對象的函數 9. Object 是一個構造(函數),每個函數都是一個Function對象, var 函數 = new Function(),Object 是Function構造出來,所以:Object.__proto__ === Function.prototype 10. 所有函數都是被 Function 創建的, 而Function 本身是函數,??Function是被自己創造自己,函數又都是對象,所以,Function.__proto__ === Function.prototype 11. 最后總結:先有Object.prototype(原型鏈頂端), 然后Function.prototype繼承Object.prototype而產生, 最后,Function構造函數和Object構造函數和其它構造函數繼承Function.prototype而產生。
---------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------- ----------------------------------------------------------------------------------------------
1. Object.prototype 也是對象,但是Object.prototype.__proto__ === null 2. 函數也是對象,函數對象.__proto__ === 創建出這個對象的函數(Function).prototype 3. Function也是對象,也有__proto__ 所以:Function.__proto__ === Function.prototype,自己創建自己 ---------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------- 1. function Foo(){}//構造函數 2. var f1 = new Foo();//f1對象 由Foo()創建 3. f1.__proto__ === Foo.prototype 4. 一切函數都是對象,Foo構造函數也是對象,由Function創建,所以,Foo.__proto__ === Function.prototype 例子:var f2 = new Function('x','y','return x+y;'); 5. Foo.prototype當然是對象,所以,Foo.prototype.__proto__ === Object.prototype, 例子:var obj = new Object(); 6. 特例:Object.prototype也是對象,但是 Object.prototype.__proto__ === null 7. var obj1 = new Object();//或者簡寫:var obj1 = {}; 8. obj1.__proto__ === Object.prototype //對象的 __proto__ 指向 創建出這個對象的函數 9. Object 是一個構造(函數),每個函數都是一個Function對象, var 函數 = new Function(),Object 是Function構造出來,所以:Object.__proto__ === Function.prototype 10. 所有函數都是被 Function 創建的, 而Function 本身是函數,??Function是被自己創造自己,函數又都是對象,所以,Function.__proto__ === Function.prototype 11. 最后總結:先有Object.prototype(原型鏈頂端), 然后Function.prototype繼承Object.prototype而產生, 最后,Function構造函數和Object構造函數和其它構造函數繼承Function.prototype而產生。
轉載于:https://www.cnblogs.com/chaosJS/p/9265586.html
總結
以上是生活随笔為你收集整理的JavaScript 中的原型(总则)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【DB2】NVL2函数
- 下一篇: 读书笔记-JavaScript高级程序设