首页 > 编程笔记 > JavaScript笔记 > JS面向对象编程
JS创建对象(3种方式)
在 JavaScript 中创建对象的方式有 3 种,简单介绍如下。
构造对象
使用 new 运算符调用构造函数,可以构造一个实例对象。具体用法如下:var objectName = new functionName(args);参数说明如下:
- objectName:返回的实例对象。
- functionName:构造函数,与普通函数基本相同,但是不需要 return 返回值,返回实例对象,在函数内可以使用 this 预先访问。
- args:实例对象初始化配置参数列表。
示例
下面示例使用不同类型的构造函数定义各种实例。var o = new Object(); //定义一个空对象 var a = new Array(); //定义一个空数组 var f = new Function(); //定义一个空函数
对象直接量
使用直接量可以快速创建对象,也是最高效、最简便的方法。具体用法如下:var objectName = { 属性名1 : 属性值1, 属性名2 : 属性值2, ... 属性名n : 属性值n };在对象直接量中,属性名与属性值之间通过冒号进行分隔,属性值可以是任意类型的数据,属性名可以是 JavaScript 标识符,或者是字符串型表达式。属性于属性之间通过逗号进行分隔,最后一个属性末尾不需要逗号。
示例1
下面代码使用对象直接量定义两个对象。var o = { //对象直接量 a : 1, //定义属性 b : true //定义属性 } var o1 = { //对象直接量 "a" : 1, //定义属性 "b" : true //定义属性 }
示例2
属性值可以是任意类型的值。如果属性值是函数,则该属性也称为方法。var o = { //对象直接量 a : function () { //定义方法 return 1; } }
示例3
如果属性值是对象,可以设计嵌套结构的对象。var o = { //对象直接量 a : { //嵌套对象 b : 1 } }
示例4
如果不包含任何属性,则可以定义一个空对象。var o = {} //定义一个空对象直接量
使用 Object.create
Object.create 是 ECMAScript 5 新增的一个静态方法,用来创建一个实例对象。该方法可以指定对象的原型和对象特性。具体用法如下:Object.create(prototype, descriptors)
参数说明如下:- prototype:必须参数,指定原型对象,可以为 null。
- descriptors:可选参数,包含一个或多个属性描述符的 JavaScript 对象。属性描述符包含数据特性和访问器特性,其中数据特性说明如下。
- value:指定属性值。
- writable:默认为 false,设置属性值是否可写。
- enumerable:默认为 false,设置属性是否可枚举(for/in)。
-
configurable:默认为 false,设置是否可修改属性特性和删除属性。
- set():设置属性值。
- get():返回属性值。
示例1
下面示例使用 Object.create定义一个对象,继承 null,包含两个可枚举的属性 size 和 shape,属性值分别为 "large" 和 "round"。var newObj = Object.create (null, { size : { //属性名 value : "large", //属性值 enumerable : true //可以枚举 }, shape : { //属性名 value : "round", //属性值 enumerable : true //可以枚举 } }); console.log(newObj.size); //large console.log(newObj.shape); //round console.log(Object.getPrototypeOf(newObj)); //null
示例2
下面示例使用 Object.create 定义一个与对象直接量具有相同原型的对象。var obj = Object.create(Object.prototype, { //继承Obj.prototype原型对象 x : { value : undefined, //属性值 writable : true, //可写 configurable : true, //可以配置 enumerable : true //可以枚举 } }); console.log("obj.prototype = " + Object.getPrototypeOf(obj)); //"obj.prototype =[object, Object]"Object.getPrototypeOf() 函数可获取原始对象的原型。如果要获取对象的属性描述符,可以使用 Object.getOwnPropertyDescriptor() 函数。
示例3
下面示例定义一个对象,使用访问器属性 b 来读写数据属性 a。var obj = Object.create(Object.prototype, { a : { //数据属性a writable : true, value : "a" }, b : { //访问器属性b get : function () { return this.a; }, set : function (value) { this.a = value; }, } }); console.log(obj.a); //"a" console.log(obj.b); //"a" obj.b = 20; console.log(obj.b); //20
所有教程
- C语言入门
- C语言编译器
- C语言项目案例
- 数据结构
- C++
- STL
- C++11
- socket
- GCC
- GDB
- Makefile
- OpenCV
- Qt教程
- Unity 3D
- UE4
- 游戏引擎
- Python
- Python并发编程
- TensorFlow
- Django
- NumPy
- Linux
- Shell
- Java教程
- 设计模式
- Java Swing
- Servlet
- JSP教程
- Struts2
- Maven
- Spring
- Spring MVC
- Spring Boot
- Spring Cloud
- Hibernate
- Mybatis
- MySQL教程
- MySQL函数
- NoSQL
- Redis
- MongoDB
- HBase
- Go语言
- C#
- MATLAB
- JavaScript
- Bootstrap
- HTML
- CSS教程
- PHP
- 汇编语言
- TCP/IP
- vi命令
- Android教程
- 区块链
- Docker
- 大数据
- 云计算