【基础】五分钟学会JavaScript对象类型

1 Object介绍

在JavaScript中Object是最基本,最常用,最强大的数据类型,也是面向对象编程的基础。在JavaScript的六种基本的数据类型中,Object是唯一的复杂数据类型,唯一的可变数据类型。一个Object就是一个基本数据类型以名称值对存储的无序列表。

2 Object创建

Object的创建方法有很多种,本文只介绍简单的字面值创建,构造模式。

2.1 字面值

最简单的Object创建方式。

var apple = {
    name:"苹果",
    color:"红色",
    origin:["栖霞","临猗"],
    showDesc:function () {
        console.log(this.name+"是"+this.color+"的");
    }
};

2.2 构造模式

对于应用程序中只做简单的数据存储,字面值的创建方式非常的简单有效。但是对于复杂的应用时,比如我们需要构建10种水果时,每种水果都有名称,颜色,产地等,如应用上述方式就需要重复多次创建对象。我们应用构造模式并引入水果(fruit)对象来解决上述问题。

function Fruit(theName,theColor,theOrigin) {
    this.name = theName;
    this.color = theColor;
    this.origin = theOrigin;
    this.showDesc = function () {
        console.log(this.name+"是"+this.color+"的");
    }
}

应用这种方式,可以很方便的创建各种水果,如果需要改变水果的描述方法(showDesc)也只需要做一处改动就好。也可以新增自有方法和属性。

var mango = new Fruit("芒果","黄色",["陵水","南宁"]);
//输出 芒果是黄色的
mango.showDesc();

3 访问属性

Object对象中的第一项都被称为属性(函数被称为方法),一般来说属性值可以通过点号(.)或中括号([])加属性名的方式获得。属性名可以是字符串(String)也可以是数字(Number),但一般最好不要用数字做为属性名称,如果用数字做属性名称,只能采用中括号的方式访问属性。

var ageGroup = {15:"儿童",60:"老人"};
//输出 儿童
console.log(ageGroup["15"]);
//抛出 SyntaxError 
console.log(ageGroup.15);

3.1 点号(.)

var people = {name:"iFat3",sex:"男"};
//输出 iFat3
console.log(people.name);

3.2 中括号([])

var people = {name:"iFat3",sex:"男"};
//输出 iFat3
console.log(people["name"]);

4 属性存在与否判定

var people = {name:"iFat3",sex:"男"};
//输出 true
console.log("name" in people);
//输出 false
console.log("age" in people);
//输出 true,继承而来
console.log("toString" in people);

5 自有属性判定

var people = {name:"iFat3",sex:"男"};
//输出 true
console.log(people.hasOwnProperty("name"));
//输出 false,继承属性非自有属性
console.log(people.hasOwnProperty("toString"));

6 访问并枚举属性

var people = {name:"iFat3",sex:"男"};
//输出 name sex
for(var item in people) {
    console.log(item);
}

7 删除属性

只能删除自有属性,不能删除继承属性。

var people = {name:"iFat3",sex:"男"};
delete people.sex;
//输出 undefined
console.log(people.sex);
delete people.toString();
//输出 [object Object]
console.log(people.toString());

8 序列化和反序列化

使用JSON.stringify函数来序列化对象,使用JSON.parse函数来反序列化对象。

var people = {name:"iFat3",sex:"男"};
var peopleStr = JSON.stringify(people);
//输出 string
console.log(typeof peopleStr);
//输出 {"name":"iFat3","sex":"男"}
console.log(peopleStr);
var people2 = JSON.parse(peopleStr);
//输出 object
console.log(typeof people2);
//输出 iFat3
console.log(people2.name);

本文并未介绍JavaScript的原型属性,Prototype部分内容较多会另做介绍。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,160评论 19 139
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 14,040评论 6 13
  • 很早以前就有过要写点什么的念头,也曾经尝试过写小说,也只是写了个没有任何新意的开头就不了了之就,希望在简书能够...
    氵方子阅读 1,351评论 0 0
  • 儿子快四岁了,像孙猴子一样,没休止地闹腾着,不用给他支点,他也能翘起整个世界,无时无刻不考验着我思索人生的意义。 ...
    林子里的蒹葭阅读 3,173评论 4 5

友情链接更多精彩内容