JavaScript原型相关知识,很久以前学习过一次,后来慢慢的就忘了,这次又学习了一次,总结一下加深记忆,便于下次快速学习
总结
- 除去四种基本的值类型(undefined, number, string, boolean),一切皆是对象
- 所有对象都是通过函数创建的,同时函数也是一种对象
- 每个函数都有一个都有一个属性
prototype,这个属性指向一个对象,该对象也都有一个属性constructor,指向函数本身
- 每个对象也都有一个属性
__proto__,指向创建该对象的函数的prototype
Object.prototype的__proto__指向null
一些代码帮助理解上述结论
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| function fn () {}
fn.prototype.constructor === fn
const obj = new fn() obj.__proto__ === fn.prototype
const obj2 = {} obj2.__proto__ === Object.prototype
fn.__proto__ === Function.prototype Function.__proto__ === Function.prototype Function.prototype.__proto__ === Object.prototype
Object.__proto__ === Function.prototype Object.prototype.__proto__ === null
|
参考
https://www.cnblogs.com/wangfupeng1988/p/3977924.html