JavaScript对象总结


开发工具与关键技术:Adobe Dreamweaver JavaScript

作者:萧氏萧然

撰写时间:2020年10月 27日

知识点罗列:

对象属于一种复合的数据类型,在对象中可以存储多个不同数据类型的属性

对象的分类:

1.内建对象

  • 由ES标准中定义的对象,在任何ES的实现中都可以使用

例如:Math String Number
Boolean Function Object…

2.宿主对象

  • 由JS的运行环境提供的对象,目前来讲主要指由浏览器提供的对象

  • 比如:BOM(浏览器对象模型) DOM(文档对象模型)

例如 我们常用的console.log() 就是DOM 中的对象

3.自定义对象

  • 由咱们开发人员自己定义的对象

使用new关键字调用的函数,是构造函数constructor

构造函数是专门用来创建对象的函数

var
obj=new Object();//创建对象

在对象中保存的值称为属性:

向对象添加属性的语法: ①对象.属性名=属性值
② 对象[“属性名”]=属性值

读取对象属性的语法: ①对象.属性名 ②对象[“属性名”]

  • 注意:如果对象中没有的属性,不会报错而是返回undefined

对象的属性值可以是任意的数据类型

属性名:

对象的属性名不强制要求遵守标识符规则

什么名称都可以,但是不允许这里使用,我们自己定义的使用都必须遵守标识符规则。

in运算符
过该运算符检查一个对象中是否含有指定的属性
果含有则返回true,如果没有则返回false

语法 :“属性名” in
对象

创建自定义对象最简单的方式就是创建一个Object的实例,然后再为他添加属性和方法,如下所示:
在这里插入图片描述

上面的例子创建了一个名为person的对象,并为他添加了三个属性和一个方法。其中sayName()方法用于显示name属性,this.name将被解析为person.name,上面的例子用对象字面量的语法可以写成如下这样:
在这里插入图片描述

这个例子中的person对象和前面的对象是一样的,都有相同的属性和方法。

虽然Object构造函数或者对象字面量的方法都可以用来创建单个对象,但是这些方法有个明显的缺点:使用同一个接口创建很多对象,会产生大量的重复代码。为了解决这个方法,人们开始使用工厂模式的一种变体。

一、工厂模式

工厂模式是软件工程领域一种广为人知的设计模式,这种模式抽象了创建具体对象的过程。考虑到ECMAScript中无法创建类,开发人员就发明了一种函数,用函数来封装以特定接口创建对象的细节,如下所示:
在这里插入图片描述

函数createPerson()能够根据接受的参数来构建一个包含所有必要信息的Person对象。可以多次调用这个函数,每次都会返回一个包含三个属性一个方法的对象。工厂模式虽然解决了创建多个相似对象的问题,但却没有解决对象识别的问题,即怎么样知道这是哪个对象类型。

二、构造函数模式

像Array数组对象、Object这样的原生构造函数,在运行时会自动出现在执行环境中。此外,我们可以创建自定义个构造函数,从而定义自定义类型的属性和方法。例如,我们可以使用构造函数重写上个例子:
在这里插入图片描述

在这个例子中,Person()函数取代了createPerson()函数,我们注意到Person()与createPerson()的不同之处在于:

1、没有显式的创建对象

2、直接将属性和方法赋值给this对象

3、没有return语句

要创建一个Person实例,必须使用new操作符。以上这种方式会经过以下四个步骤:

1、创建一个新对象

2、将构造函数的作用域赋给新对象(因此this指向这个新对象)

3、执行构造函数中的代码

4、返回新对象

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值