zoukankan      html  css  js  c++  java
  • js引用类型

    function Person(){};
    
    Person.prototype={
        constructor:Person,
        name:"Nacholas",
        age:29,
        friends:{"sun","li"},
        sayName:function(){
            alert(this.name);
        }
    };
    
    var person1=new Person();
    var person2=new Person();
    
    person1.friends.push("van");
    
    alert(person1.friends);//"sun,li,van"
    alert(person2.friends);//"sun,li,van"

    1.Person作为一个类,会有自己的私有属性和共有属性,可以把prototype理解为共有属性。既然共有,那么就是别人也能使用改变的。

    2.friends是数组,也就是引用类型的对象,push是这个数组具有的一个方法,所以调用push的时候不会改变这个对象的内存地址。但如果是直接赋值,

    person1.friends="van";

    改变了内存空间,实际上就是定义了私有属性,原有的共有属性不会改变!

    3.属性的查找是基于原型链的,先找私有属性,再找共有属性,如果没有共有属性,就继续网上找(Object构造函数),直到顶端。

  • 相关阅读:
    第一次热身赛和正式比赛感想
    简明解释算法中的大O符号
    poj 3045
    poj 3104
    poj 3273
    poj 3258
    poj 2456
    二分法小结
    Poj 2718 Smallest Difference
    GCJ——Crazy Rows (2009 Round 2 A)
  • 原文地址:https://www.cnblogs.com/17shiooo/p/5236840.html
Copyright © 2011-2022 走看看