Skip to content

Commit 890be09

Browse files
committed
change prototype
1 parent e2b6001 commit 890be09

File tree

1 file changed

+46
-0
lines changed

1 file changed

+46
-0
lines changed

prototype-proto.md

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -186,4 +186,50 @@ console.log(b)
186186
所以 为了让 整个 程序结构看上去 合理。 我们需要 把 新建 对象的 原型 指向 构造函数的 prototype 属性。
187187

188188

189+
190+
`
191+
所以到最后,我们 总结一下 。
192+
193+
在 javascript 中 prototype 和 __proto__ 到底有什么区别。
194+
195+
prototype 是 面向 构造函数,来思考,
196+
__proto__ 是 面向 实例化 后 的对象 来思考就对了。
197+
198+
`
199+
200+
`
201+
最后再 给一个例子,
202+
是一个,我们经常会在开发中用到的 例子。
203+
`
204+
205+
```javascript
206+
var Person = function(){}
207+
Person.prototype.sayName = function() {
208+
alert('my name is xxx')
209+
}
210+
211+
Person.prototype.age = 12
212+
213+
var p = new Person()
214+
215+
p.sayName()
216+
217+
// 当我们 实例化 之后, 在我们 去执行 p.sayName() 的 时候,我们就会去 this 内部去 查找(这里就是 构造函数 Person 内部去找。 可是 没找到啊。只是一个 空函数, 怎么办呢?)
218+
219+
// 这个时候 就会沿着 原型链向上追溯, 但是如何 追溯呢?
220+
221+
// 这里就要用到 __proto__ 属性 来作为 追溯的 桥梁。
222+
223+
// 因为 实例化对象的 __proto__ 属性 指向的就是 构造函数的 prototype 属性所对应的 对象啊
224+
225+
```
226+
227+
228+
![](http://images2015.cnblogs.com/blog/675289/201703/675289-20170311172017998-131500932.png)
229+
230+
231+
最后 终于 愉快的 找到了,自己的对象啦~ 单身狗就可能一直找不到,或者看不懂这篇文章。
232+
233+
234+
189235
好了,以上就是 在 看 vuejs 源码 的时候 关于 new 的 一个 知识 扩展。

0 commit comments

Comments
 (0)