直接定义和在_proto_中定义的区别

来源:1-3 javascript原型基础知识

seradle

2018-05-25 15:23

https://img3.mukewang.com/5b07b97a0001a2df19731080.jpg

我想问下,就是这个函数直接定义和在原型中定义在实际开发中有什么区别

写回答 关注

1回答

  • 依韵_宵音
    2018-06-02 22:32:29

    直接 `arr.test` 是给arr这个数组(本质还是对象)新增了一个新属性,值为一个函数。

    而 `arr.__proto__.test` 则是加在arr的原型上的。

    类比面向对象的变成思想。假设一直狗会叫,那么这个方法是针对每一只具体的狗逐个去赋予它这个方法呢?还是直接在狗的这个抽象类对象上?


    不过在实例代码中用prototype的更多一些吧,不过和 `__proto__` 也是有区别的,简单可以说prototype是从Array上访问,而在具体以的某个  `[]` 上是不行。不过 `Array.prototype === [].__proto__`  ,因此可通过[].__proto__访问修改Array.prototype。 具体区别需要深入JavaScript的原型链机制了。


zepto设计和源码分析

介绍zepto的设计框架和实现原理,看完后能轻松解读zepto所有源码

16431 学习 · 16 问题

查看课程

相似问题