美文网首页
JavaScript(二):如何深入理解对象

JavaScript(二):如何深入理解对象

作者: 豆板儿 | 来源:发表于2016-12-01 18:02 被阅读8次

    JavaScript最重要的数据类型就是对象。JavaScript的数据类型分为两类:一是引用类型,即Object;而是基础类型,即Number,String,Boolean,Undefined 和 Null。基础类型和引用类型的区别在于:基础类型的值是不可变的;引用类型的值是可变的,详情参见JavaScript(三):基本类型和引用类型的区别

    什么是对象

    对象是无序属性的集合,其属性可以包含基本值、对象或者函数。严格来说,对象是一组没有特定顺序的值。对象的每一个属性和方法都有一个名字,而这个名字都映射到这个值。

    如下是一个简单的对象:

    var myFirstObject = {firstName: "Richard", favoriteAuthor: "Conrad"};

    对象想象成一张列表,其中每一项(对象的属性或方法)都以键值对的方式存储。
    myFirstObject的属性是firstNamefavoriteAuthor;对应的值为"Richard""Conrad"

    对象的属性名称可以是String或者Number,对象属性名称如果是Number类型,那么就只能通过综括号加属性名的访问方式访问。

    var ageGroup = {30: "Children", 100:"Very Old"};
    console.log(ageGroup.30) 
    
    // This will throw an error
    // This is how you will access the value of the property 30, to get value "Children"
    
    console.log(ageGroup["30"]); // Children
    //It is best to avoid using numbers as property names.
    
    

    引用类型和基本类型

    引用类型和基本类型的重要区别在于:引用类型的保存指针,而不是像基本类型一样,直接根据变量保存值。如以下两个例子所示。

    一是,基本类型的赋值:

    // The primitive data type String is stored as a value
    var person = "Kobe";  
    var anotherPerson = person; // anotherPerson = the value of person
    person = "Bryant"; // value of person changed
    
    console.log(anotherPerson); // Kobe
    console.log(person); // Bryant
    
    

    anotherPerson并不会随着person值的变化而变化。

    二是引用类型的赋值:

    var person = {name: "Kobe"};
    var anotherPerson = person;
    person.name = "Bryant";
    
    console.log(anotherPerson.name); // Bryant
    console.log(person.name); // Bryant
    
    

    在这里,我们将person对象赋值给anotherPerson对象,但是由于person保存的是指针,因此 我们改变person.name"Bryant"anotherPersonname属性也会变成"Bryant"

    对象的属性是有特性的

    资料来源:
    《JavaScript Objects in Detail》http://javascriptissexy.com/javascript-objects-in-detail/

    相关文章

      网友评论

          本文标题:JavaScript(二):如何深入理解对象

          本文链接:https://www.haomeiwen.com/subject/gwzzpttx.html