js创建对象的几种方式

1 篇文章 0 订阅
1 篇文章 0 订阅

js高级程序设计有很详细的说明,这里就不做详解了,只是做个笔记和总结,方便记忆和理解

1、工厂模式:
最简单的模式,生产并返回一个object对象

    function createPer(name){
        var o = new Object();
        o.name = name;
        return o;
    }
    var p1 = createPer("js");

2、构造函数形式,比较常用的形式,在组件封装中经常用到。

    function Person(name,age){
        this.name = name;
        this.age = age;
        //this.name,this.age 是该对象的特权变量
    }
    var p = new Person("js",5);
以这种方式创建的构造函数是定义在(global)中,在浏览器中就是window对象。
我们可以用new的方法来进行对象实例化,也可以当作普通函数来调用。
Person("js",5),会添加到window对象中

3、原型模式
在原型对象prototype中定义各种变量和方法。
用这个方法定义后,每个创建的对象实例的proto都指向原型对象。
这个方法的原型语法有好几种,这里就不具体写了
4、组合使用构造函数和原型模式

这种方式是最常见的,因为可以避免很多的问题。
![这里写图片描述](https://img-blog.csdn.net/20180627203938949?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2FiUzk4Nzk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)

5、动态原型模式
这中模式就是在构造函数初始化的时候去判断下,这里用了一个设计模式就是单例模式。
这里写图片描述
使用这种方法之后绝对不能重写,否则就会切断现有实例与新原型之间的联系。
6、寄生式构造函数

7、稳妥构造函数模式
只有在不用this和new的时候用这种方式,不做介绍了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值