1.所有引用类型(函数、数组、对象)都拥有_proto_属性(隐式原型)
2.所有函数拥有prototype属性(显式原型)(仅限函数)
3.原型对象:拥有prototype属性的对象,在定义函数时就被创建
a.所有函数的_proto_都是指向Function的prototype
b.构造函数new出来的对象_proto_指向构造函数的prototy
c.Object的prototype指向null
this详解:
1.谁最终调用函数,this指向谁
a.this指向的永远只可能是对象
b.this指向谁不取决于this写在哪,而是取决于this在哪调用
2.this指向的规律(与函数调用的方式息息相关)
a.通过函数名 () 直接调用,this指向window
b.通过对象.函数名()调用的,this指向这个对象
c.函数通过数组的一个元素,通过数组下标调用的,this指向这个数组
d.函数作为window内置函数的回调函数调用时,this指向window,如setTimeout。seterval等
e.函数作为构造函数用new关键字调用时,this指向新new出来的对象
JS中,万物皆对象,但对象也是有区别的,分为普通对象和函数对象。