zoukankan      html  css  js  c++  java
  • 草稿

      原型虽然在某种程度上带来很大方便,但也存在一些问题,其问题是由它共享的本质所导致的。

      我们知道,原型中的属性是可以被实例共享的,这种共享对于函数非常合适不过,但对于属性就要另当别论了。如果如果属性的值为基本类型数据,其共享的特点也能说得过去,而属性的值为引用数据类型时,问题就很明显,比如下面的例子。

      function P(){

      };

      P.prototype={

        name:“张三”;

        friends:["Tom","Jerry"]

      };

      var p1 = new P();

      var p2 = new P();

      p1.name = "李四"

      p1.friends.push("Mike");

      alert(p1.name);     //"李四"

      alert(p1.name);     //"张三"

      alert(p1.friends);    //["Tom","Jerry","Mike"]

      alert(p2.friends);    //["Tom","Jerry","Mike"]

      在此例中,构造函数P的原型中有一个friends属性,指向一个叫["Tom","Jerry"]的数组。接着创建了p1和p2两个实例,然后修改p1的friends属性,给数组添加了一成员“Mike”,由于数组存在P.prototype当中,而不是p1中,

     ····待续

  • 相关阅读:
    iperf简单说明
    计算后图像大小参数计算
    ipywidgets安装报错
    Cannot uninstall [pacakage]. It is a distutils installed project
    torch
    es-centos7安装注意细节
    jupyter 指定特定的环境
    未来方向
    深度学习过拟合处理
    归一化
  • 原文地址:https://www.cnblogs.com/onedayzq/p/5801283.html
Copyright © 2011-2022 走看看