美文网首页JS学习笔记
JS对象(1)- 对象的基本介绍

JS对象(1)- 对象的基本介绍

作者: zh2443 | 来源:发表于2018-12-21 19:04 被阅读0次

1. 定义

对象是JavaScript的一种数据类型,它是属性的无序集合,而且js中一切皆对象。

2. 创建

可以通过以下几种方式创建对象:

    1.  对象字面量(也叫对象直接量):

    2. 构造函数:

        I: 系统定义的构造函数创建:Object,String,Number,Boolean等

       II: 自定义的构造函数:

    自定义的构造函数即为一个函数,为了与普通函数区别,采用大驼峰式(单词首字符都大写)命名法命名函数。

       III: Object.create(原型对象)

    该方法创建对象时,传递需要创建的对象的原型,创建一个新的对象。它有如下特性:

            1. 传递的原型对象必须为Object或null,不传或传其他的原始数据类型时都会报错;

            2. 当传递null时,表示创建的对象没有原型;

            3. Object.create(Object.prototype) 等价于 new Object()。

3. 包装类

    五大原始值:string,number,boolean,null,undefined,其中string,number,boolean都有自己的包装类。有了包装类,我们可以给这些原始值添加属性和方法及获取它们包装类的属性和方法。如下,我们可以直接获取字符串的length数据:

    当我们在访问字符串'abc'的length属性时,js引擎内部帮我们做了这样的处理:new String('abc').length;但是需要注意的是,该操作是临时的,在创建完string对象并获取length属性后,创建的对象会立即销毁。所以我们会得到下面的结果:

4. 原型

    原型(prototype)是function对象的一个属性,它是构造函数构造出来的对象的公共祖先,它也是一个对象。通过构造函数构造的对象,可以访问该对象原型上的属性:

    通过自定义的构造函数创建对象时,用了new操作符,该操作符在创建对象时,内部做了如下的隐性操作:

 上图中的描述,可以得到如下的结论:

    1. 可以构建自己的对象,并返回:

    但是需要注意的是,返回原始值是无效的:

   2. 可以看出,在创建对象时,第一步隐式操作就已经得到了该对象,后面给该赋值,并返回。如下,我们可以通过instanceof操作符判断this对象为Person的实例:

     3. 创建的对象中包含了一个__proto__的属性,该属性即为对象的原型,可以通过修改该属性,改变对象的原型(但最好不要这样做,一般通过设置Person.prototype的方式改变对象的原型):

    原型也是一个对象,它的上面有一个constructor属性,该属性指向了对象的构造器,通过该属性可以找到创建出的对象的构造函数,可以通过对象.constructor方式访问:

5. 原型链

    原型对象也是一个对象,那么它也有自己的原型,这样就会形成一个原型链。创建的对象可以访问原型链上的所有属性和方法:

    大部分对象的原型链的最顶端是Object.prototype,仅Object.create(null)创建的对象除外,它没有原型。dom中有一个document.write()方法,该方法在输出时会调用toString方法,当遇到Object.create(null)创建的对象时,它在输出时会报错,因为它没有toString()方法:

    Object.prototype对象包含的属性如下图:

相关文章

  • JS对象(1)- 对象的基本介绍

    1. 定义 对象是JavaScript的一种数据类型,它是属性的无序集合,而且js中一切皆对象。 2. 创建 可以...

  • HTML5中JavaScript的对象语法

    前言 JavaScript中也有对象,本章主要是介绍JS中对象的基本语法, 本章的重点: "this"的引用 1,...

  • 前端面试(三)JavaScript

    介绍js的基本数据类型。 介绍js有哪些内置对象? 说几条写JavaScript的基本规范? JavaScript...

  • 基本类型和对象的区别

    这篇文章主要介绍JS中基本类型与对象之间的区别。 对象包括普通对象,数组以及函数。普通对象是基本类型的混合,同时其...

  • js对象及其方法

    1.对象MDN文档2.JS基础--JS对象及其基本用法3.JavaScript 对象所有API解析

  • JS高级3-语言特性

    一、 JS面向对象编程 1、 面向对象介绍 什么是对象? Everything is object (万物皆对象)...

  • 对象

    js对象 js对象是j's的基本数据类型, js中的对象是动态的, 可以新增属性,也可以删除属性。 1.获取时间 ...

  • 第3章 ES6类(Class)使用

    目标 Class基本语法 constructor方法 类的实例对象 1、Class基本语法js传统创建新对象的方法...

  • 第3章 ES6类(Class)使用

    目标 Class基本语法 constructor方法 类的实例对象 1、Class基本语法 js传统创建新对象的方...

  • jQuery对象和DOM对象

    1、dom对象(js对象)使用js的方式获取到的元素就是js对象。 例如: 裤子 入口文件: 1、js对象 $(f...

网友评论

    本文标题:JS对象(1)- 对象的基本介绍

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