diff --git a/随时随地/Images/深入 JavaScript 原型思考.png b/随时随地/Images/深入 JavaScript 原型思考.png new file mode 100644 index 0000000..e9a8437 Binary files /dev/null and b/随时随地/Images/深入 JavaScript 原型思考.png differ diff --git a/随时随地/深入 JavaScript 原型思考.md b/随时随地/深入 JavaScript 原型思考.md index eeefd34..4e25604 100644 --- a/随时随地/深入 JavaScript 原型思考.md +++ b/随时随地/深入 JavaScript 原型思考.md @@ -8,4 +8,8 @@ JavaScript 是一门基于原型的语言,它靠着原型这一个特殊的概 \[\[prototype\]\] 是所有对象都具有的私有属性,这个属性的实现方式取决于各个平台,而对于浏览器环境而言,以 Chrome 为例,定义了 \_\_proto\_\_ 访问器属性(getter、setter) 指向 \[\[prototype\]\],也就是说在对象中,通过 \_\_proto\_\_ 访问到的就是 \[\[prototype\]\] 私有属性 -prototype 是函数独有的属性,无论什么时候只要创建了新的函数,就会根据特定的规则为该函数创建一个 prototype 属性,这个属性指向一个私有的空间/仓库,这个空间也有着一个 constructor 属性指回该函数, \ No newline at end of file +prototype 是函数独有的属性,无论什么时候只要创建了新的函数,就会根据特定的规则为该函数创建一个 prototype 属性,这个属性指向一个私有的对象,这个空间也有着一个 constructor 属性指回该函数,同时这个对象也具有 \_\_proto\_\_ 属性指向 Object.prototype + +补充:并非所有对象都会具有 \[\[prototype\]\] 属性,你可以用 Object.cre + +![[深入 JavaScript 原型思考.png]] \ No newline at end of file