JavaScript中创建对象的方法(上)
来源:互联网 发布:网络作家招聘 编辑:程序博客网 时间:2024/05/16 23:43
JavaScript中创建对象的方式:
一、工厂模式
所谓工厂模式就是将对象的属性或者方法当做参数传给一个函数,该函数返回具有相应属性和方法的对象。实例如下:
function createPerson(name, age, sex) { var o = {}; o.name = name; o.age = age; o.sex = sex; return o; } var person1 = createPerson('张三', '54', '男'); var person2 = createPerson('李四', '25', '男'); console.log(person1.name);//张三 console.log(person2.name);//李四
二、构造函数模式
用构造函数来创建特定类型的的对象,这一方法和C++中创建对象的方法类似,实例如下:function Person(name, age, sex) { this.name = name; this.age = age; this.sex = sex; } var person3 = new Person('王五', '54', '男'); var person4 = new Person('马六', '25', '男'); console.log(person3.name);//王五 console.log(person4.name);//马六
这里有两点需要注意:
1、person函数首字母大写,用以区分构造函数和非构造函数;
2、person3和person4分别保存着Person的一个不同实例,他们都默认有一个constructor(构造函数)属性,且都指向Person,测试如下:
console.log(person3.constructor === Person);//true console.log(person4.constructor === Person);//true
和工厂模式相比,构造函数模式最大的优势在于:自定义的构造函数将来可以将他的实例标识为一种特定的类型;即,person3和person4是Object类型也是Person类型,可以用instanceof自行验证;
当然,构造函数模式也有缺点: 如果构造函数里边写了一个方法,那么每个实例都会创建该方法,也就是说,不同实例上的同名方法是不相等的。那么如果这些方法要实现相同的功能,这就显得很累赘了。
解决办法:将方法定义为全局函数,在构造函数里边调用函数,这样就可以所有实例共享同一个方法了。而不需要分别创建;
带来新问题:如果需要很多方法,那么就需要定义很多全局函数,这严重影响封装性,所以为了解决这个问题,引入了原型模式(详情请参考中篇);
0 0
- JavaScript中创建对象的方法(上)
- JavaScript中创建对象的方法(中)
- JavaScript中创建对象的方法
- JavaScript中创建对象的方法(下)
- JavaScript 创建对象的方法
- Javascript创建对象的方法
- JavaScript创建对象的方法
- javascript中创建对象的方式及方法的重载
- Javascript中创建对象的几种方法
- javascript中创建对象的几种方法总结
- Javascript 中创建自定义对象的方法汇总
- JavaScript中创建对象的几种方法
- javascript中创建有方法的自定义对象
- JavaScript中对象的创建
- JavaScript中创建对象方法总结
- JavaScript 对象创建方法
- JavaScript创建对象方法
- JavaScript对象创建方法
- 写给初学者24_android_数据持久化_共享参数_SharedPreferences
- map算数
- C语言中的可变参数
- HTTP之协议代理
- RapidMiner 数据转换
- JavaScript中创建对象的方法(上)
- 强化学习Reinforcement Learning
- 【2017/4/23】oracle之sql(一)
- java中Collections对自定义对象进行sort()
- matlab中绘制平行于坐标轴的直线
- 有关进程,线程通信的几个详细问题
- 基于KLT算法的MATLAB人脸识别实例分析
- cookieUtil
- UINavigationItem和UItabBarItem的区别详解