JS对象

Posted shige720

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS对象相关的知识,希望对你有一定的参考价值。

定义                                                                                  

  对象是任意值的集合  

  JS中的一切都可以理解成对象,例如其中的数组函数对象

声明对象的方式                                                                

1.字面量

  直接通过var声明一个对象,并在中写出该对象的属性名、属性值、函数(方法)

  注意其中属性名需要用引号括起来

技术图片zimian

2.构造函数

  用var声明构造一个Object对象,然后通过对象名.属性名=属性值的方法添加属性和方法

技术图片createfunction

3.构造方法

  定义一个函数和其形参,在函数内部用this指向当前函数,把传入的参数添加为属性值

  定义完成后,构建一个函数的实例

技术图片createfunction2

4.工厂模式

  定义一个函数,函数内部var声明构造一个Object对象,并通过对象名.属性名=属性值来给这个对象添加属性和方法,最后返回该对象

  可以理解成一个白盒,可以向其中投入参数,返回一系列具有相同属性名方法的对象,但对象之间彼此独立没有关联

技术图片factory mode

5.原型模式

  定义一个空函数(空方法),通过函数的prototype属性来给该空函数添加属性、方法

  通过var声明创建一个该函数的实例,以生成一个对象

技术图片prototype mode

  此外,对定义的空函数(空方法),可以用prototype属性,以键值对的形式传递一个对象,以作为该空函数的属性名和属性值

  该方法叫做json数据(只要是字符串,无论键值都要用引号引起来

技术图片json data

6.混合模式

  用构造方法创建一个函数,在其中用this指向当前函数,把传入的参数赋值为属性值

  再用原型模式,给函数添加方法

  最后构建一个函数的实例,以创建一个对象

技术图片mixed mode

 

对象的遍历和存储                                                            

1.遍历对象

  通过for i in k语句来遍历对象

  其中i为对象中的每一个属性名/方法名,k为对象名

  可用k[i]访问每一个属性值/方法的定义代码

2.对象在内存中的存储

  内存分为栈内存、堆内存、代码段以及数据段

  对象的名称保存在栈内存中,是个指向堆内存中某个对象的地址

  堆内存中保存了该对象的属性(名/值)以及方法名,方法名指向代码段

  代码段即对象的方法的具体代码

技术图片

以上是关于JS对象的主要内容,如果未能解决你的问题,请参考以下文章

js对象的用法是啥?

20170907笔记:JS对象&jQuery对象转换

js中的内置对象是怎么理解的 ?怎么区分静态对象和动态对象的~~感觉很抽象 很懵懂的样子

js对象数组添加元素

vue.js 结构赋值--对象

怎么用js拿到一个对象里面的属性