zoukankan      html  css  js  c++  java
  • 6.原型对象的问题



    // 原型对象的缺点:省略了为构造函数传递初始化参数这一环节,结果所有的实例在默认情况下都取的相同的属性值
    // 原型模式的最大问题是由其共享的性质导致的
    // 原型中所有属性是被很多实例共享的,这种共享对于函数非常合适,但对于包含引用类型值的属性来说,问题就比较多了

    function Person(){

    }

    Person.prototype={
    constructor:Person,
    name:"summer",
    age:20,
    job:"enginner",
    friends:["su1","su2"],
    sayName:function(){
    console.log(this.name);
    }
    }

    var person1=new Person();
    var person2=new Person();
    person1.friends.push("su3");
    console.log(person1.friends); // ["su1", "su2", "su3"]
    console.log(person2.friends); // ["su1", "su2", "su3"]
    console.log(person1.friends===person2.friends); // true

    // 由于friends数组存在于Person.prototype中,而非person1中,因此在person2.friends中也会反映出来
    // 但是,一般情况下,我们的要求是实例要有属于自己的属性,因此,很少有人单独使用原型模式
  • 相关阅读:
    点分治 / 点分树题目集
    HNOI2019 游记
    WC2019 题目集
    SA / SAM 题目集
    Min_25 筛小结
    NOIP2018 差点退役记
    Atcoder 乱做
    DP及其优化
    计数与概率期望小结
    分库分表之后全局id咋生成?
  • 原文地址:https://www.cnblogs.com/liululu/p/5833472.html
Copyright © 2011-2022 走看看