JS对象
Posted shige720
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS对象相关的知识,希望对你有一定的参考价值。
定义
对象是任意值的集合
JS中的一切都可以理解成对象,例如其中的数组、函数、对象等
声明对象的方式
1.字面量
直接通过var声明一个对象,并在中写出该对象的属性名、属性值、函数(方法)
注意其中属性名需要用引号括起来
2.构造函数
用var声明构造一个Object对象,然后通过对象名.属性名=属性值的方法添加属性和方法
3.构造方法
定义一个函数和其形参,在函数内部用this指向当前函数,把传入的参数添加为属性值
定义完成后,构建一个函数的实例
4.工厂模式
定义一个函数,函数内部var声明构造一个Object对象,并通过对象名.属性名=属性值来给这个对象添加属性和方法,最后返回该对象
可以理解成一个白盒,可以向其中投入参数,返回一系列具有相同属性名、方法的对象,但对象之间彼此独立,没有关联
5.原型模式
定义一个空函数(空方法),通过函数的prototype属性来给该空函数添加属性、方法
通过var声明创建一个该函数的实例,以生成一个对象
此外,对定义的空函数(空方法),可以用prototype属性,以键值对的形式传递一个对象,以作为该空函数的属性名和属性值
该方法叫做json数据(只要是字符串,无论键值都要用引号引起来)
6.混合模式
用构造方法创建一个函数,在其中用this指向当前函数,把传入的参数赋值为属性值
再用原型模式,给函数添加方法
最后构建一个函数的实例,以创建一个对象
对象的遍历和存储
1.遍历对象
通过for i in k语句来遍历对象
其中i为对象中的每一个属性名/方法名,k为对象名
可用k[i]访问每一个属性值/方法的定义代码
2.对象在内存中的存储
内存分为栈内存、堆内存、代码段以及数据段
对象的名称保存在栈内存中,是个指向堆内存中某个对象的地址
堆内存中保存了该对象的属性(名/值)以及方法名,方法名指向代码段
代码段即对象的方法的具体代码
以上是关于JS对象的主要内容,如果未能解决你的问题,请参考以下文章