• 对象是引用的注意原型中的属性改变


    1.对象在原型里作为属性的时候也是保持引用的

    function Person (){
     
    }
    
    Person.prototype.sex = "woman"
    Person.prototype.phone = {tel:1258444};
    
    var li = new Person();
    li.phone.tel=5854444;
    li.sex = "man"
    
    var wang = new Person();
    console.log(wang.phone);    //5854444
    console.log(wang.sex);      //woman
    

    2.如果属性是一个对象的话,可以这样存储,每次实例化都会重新申请属性

    function Person (){
      this.phone={tel:1258444}
    }
    
    var li = new Person();
    li.phone.tel=5854444;
    
    var wang = new Person();
    console.log(wang.phone);  //125844
    

    3.原型只是在属性查找或方法调用时触发.

    function Person (){
     
    }
    
    Person.prototype.sex = "woman"
    Person.prototype.phone = {tel:1258444};
    
    var li = new Person();
    li.phone={tel:555555555};  //这个时候会把phone作为属性赋值.不会使用到原型链
    
    var wang = new Person();
    console.log(wang.phone);    //1258444
    
    
  • 相关阅读:
    GC原理---垃圾收集算法
    GC原理---对象可达判断
    散列算法和哈希表结构
    桶排序
    Spring事务梳理
    AQS
    重入锁
    CAS
    研究一下phpspider
    用php写爬虫去爬数据
  • 原文地址:https://www.cnblogs.com/zhepama/p/3066503.html
Copyright © 2020-2023  润新知