码迷,mamicode.com
首页 > Web开发 > 详细

JS对象

时间:2019-08-10 00:00:45      阅读:184      评论:0      收藏:0      [点我收藏+]

标签:属性   添加   工厂   actor   b16   构造   js对象   image   直接   

定义                                                                                  

  对象是任意值的集合  

  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对象

标签:属性   添加   工厂   actor   b16   构造   js对象   image   直接   

原文地址:https://www.cnblogs.com/shige720/p/11323213.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!