Function.prototype.someMethod = functioni() {....}这样所有function都会有个 someMethod 方法了,这样每建一个function是不是用的内存都会多一些?是不是尽量少在Function原型里加方法?

解决方案 »

  1.   

    个人观点。不知道对错
    在引用一个方法的时候会先查找自己是否有,如果没有在去查看prototype是否有。并不会占用太多的内存。也不会每建立一个内存Function就多一些。
      

  2.   

    当js从对象中获取某个属性时 对象本身没有这个属性则从原型上去查找只到查完所有的原型链 或者查到这个属性返回 因此原型链中定义的属性相对实现对象是单例的
    上面说的是get方式 如果是set则在对象本体添加这个属性你可以去搜索JS原型链查看详细说明
      

  3.   

    Array/Number/String 等都会有这个 someMethod 方法,都会根据原型链去查询,我也认为不会占内存.
      

  4.   

    多虑了
    不会,js会从本对象中找如果没有会溯源原型链直到Object对象。
    不会copy这些方法副本给每一个“后代”