美文网首页
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