分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 教程案例

js创建对象的几种方式

发布时间:2023-09-06 01:13责任编辑:赖小花关键词:js

1.通过new Object创建对象

作用范围:
???用于属性名字和属性值不能确定的地方
优点:
  编写方便
缺点:
??1.需要写大量代码
??2.创建出来的对象都是Object对象
 ???var obj = new Object(); ???obj.name = "张三" ???obj.age = 12; ???obj.setName=function (name) { ???????this.name=name; ???} ???log(obj.name, obj.age);

 2.使用{}创建对象

适用场景:
???适用于确定对象,确定方法,不需要创建很多个对象
优点:
???书写方便
缺点:
??1.不利于扩展性
??2.每次创建对象还需要有很多重复性的工作
??3.浪费内存
 ??var obj = { ???????name: "张三", ???????age: 12, ???????setName: function (name) { ???????????this.name = name; ???????} ???} ???log(obj.name,obj.age)

 3.使用工厂方法创建对象

适用场景:
??用于有固定的属性的对象进行创建,不用在意其创建的对象是不是Object类型还是自定义类型
优点:
??创建速度快,代码便捷
缺点:
??浪费内存
??所有实例都是Object的实例对象
 ???function createPerson(name, age) { ???????return { ???????????name: name, ???????????age: age, ???????????setName: function (name) { ???????????????this.name = name; ???????????} ???????} ???} ???var p=createPerson("张三",12); ???log(p.name,p.age);

 4.使用函数创建对象

适用范围:
??用于创建多个对象,并且有自己的实例对象属性
优点:
??不是一直都是Object对象,可以是自己创建的对象
缺点:
??1.浪费内存,特别是公用方法
 ???function Person(name,age) { ???????this.name=name; ???????this.age=age; ???????this.setName=function (name) { ???????????this.name=name; ???????} ???} ???var p=new Person("张三",11); ???log(p.name,p.age)

 5.原型链和函数进行创建对象

适用场景:
??用于对于有公共方法的对象
优点:
???优化内存,将方法放在了prototype中
缺点:
???未涉及字段
 ???function Person(name,age) { ???????this.name=name; ???????this.age=age; ???} ???Person.prototype.setName=function (name) { ???????this.name=name; ???} ???var p=new Person("小米",12); ???log(p); ???log(p instanceof Person)

js创建对象的几种方式

原文地址:http://www.cnblogs.com/lonecloud/p/7587206.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved