javascript的原型链(代码+图解)
<script>
window.onload = function () {
console.log(Object.prototype)
console.log(Object.prototype.__proto__) // null
function Fun() {
this.test1 = function () {
console.log('test1')
}
}
console.log(Fun.prototype)
Fun.prototype.test2 = function () {
console.log('test2')
}
var fun = new Fun()
fun.test1()
fun.test2()
console.log(fun.toString())
console.log(fun.test3) // undefined
var obj01 = {}
console.log(Fun.__proto__ === Object.__proto__) // true
console.log(Object.__proto__ === Function.prototype) // true
console.log(Object.__proto__ === Function.__proto__) // true
// 所有函数都是Function的实例(包含Function),自己是自己的构造函数可还行
console.log(Function.prototype === Function.__proto__) //true
console.log(obj01.__proto__ === Fun.prototype.__proto__) //true
console.log(obj01.__proto__ === Object.prototype) //true
console.log(Object.prototype === Object.__proto__.__proto__) //true
console.log(obj01.__proto__.__proto__ === null) //true(原型链的尽头)
console.log(Object.prototype.__proto__ === null) //true(原型链的尽头)
}
</script>
自己画的草图
下载原图放大看,字丑勿吐槽