__ proto __
__ proto __ 是由两个双下划线组成的, __ proto __ 在 ES 标准中名字为 [[prototype]] 具体实现是由浏览器自己实现的, 谷歌浏览器的实现就是将 [[prototype]] 命名为 __ proto __ ,名字是否所差异, 但是功能是一样的。 可以通过以下方式检测引擎是否支持这个属性, Object.getPrototypeOf({__proto__:null}) === null
从代码出发
function foo(){
console.log("你好")
}
let f1 = new foo()
以上代码表示创建一个构造函数 Foo(),并用 new
关键字实例化该构造函数得到一个实例化对象 f1
, 这里稍微补充一下 new 操作符将函数作为构造器进行调用的过程。
new 创建一个用户定义的对象类型的实例或具有构造函数的内置对象的实例,
new constructor ([arguments])
constructor: 一个指定对象实例类型的类或者函数
aruguments : 一个用于被 constructor 调用的参数列表。
prototype是函数才有的属性