\_proto_ 和 prototype 的区别
- prototype 是一个静态属性,是函数所独有的
- \_proto_ 是一个非法属性(虽然可以用,严重不建议),他访问到在是实例对象的属性
[[prototype]]的值
\_proto_ 和 prototype 的指向
两者都指向自身的原型对象
简单示例
var Fun = function(){}
var fff = new Fun()
fff.__proto__ === Fun.prototype // true
Fun.prototype.name="www"
fff.name // www其他注意
\_proto_ 是一个非法在属性,是浏览器厂商自己实现的,并非js标准,自己玩玩可以,但是不要在业务代码中使用。
如果要获取一个实例对象的原型,请使用:Ojbect.getPrototypeOf(obj)
Ojbect.getPrototypeOf(fff) === Fun.prototype // true