zoukankan      html  css  js  c++  java
  • 面向对象的几种方式(创建对象的几种方式)

    1、字面量的方式

        缺点: 比较麻烦,每个属性都需要添加

            var obj={
                name:"小明",
                age:16
            }

    2、构造函数的方式

        缺点: 如果要批量生成多个对象,会产生大量重复代码

    var obj=new Object();

    3、将一个对象作为原型,创建另一个对象

        obj1继承了obj的属性和方法,在原型中,有引用关系

    var obj1=Object.create(obj);

    4、工厂模式创建对象

            function createMan(name,age){
                var obj={};
                obj.name=name;
                obj.age=age;
                obj.sayName=function(){
                    return this.name;
                }
                return obj;
            }
            var one=createMan("小明",16);
            var two=createMan("小红",17);

    5、原型模式创建对象

        优点:可以让所有对象实例共享它所包含的属性和方法(即所谓的共有属性)

            function Box(){}
            Box.prototype.name="小明";
            Box.prototype.age=16;
            var b1=new Box();
            console.log(b1)//{}
            console.log(b1.name)//小明
            var b2=new Box();
            b2.name="小红";
            console.log(b2)//{name:"小红"}
            console.log(b2.name)//小红

        

    6、混合模式(构造函数+原型模式)

        优点:混合模式共享着对相同方法的引用,又保证了每个实例有自己的私有属性,最大限度的节省了内存

            function Person(name, age) {
                this.name = name
                this.age = age
            }
    
            Person.prototype = {
                constructor: Person,
                sayName: function () {
                    console.log(this.name)
                }
            }
            var p1=new Person("小明",16);
            console.log(p1)//{name: "小明", age: 16}
            p1.sayName()//小明
  • 相关阅读:
    正则匹配整数或小数
    文本超出点点点
    订单页面布局
    数据库连接池 maxActive,maxIdle,maxWait参数
    dll静态调用和动态调用
    Could not open JDBC Connection for transaction; nested exception is com.alibaba.druid.pool.GetConnection
    sql server调优
    AdPlus
    010 Editor
    WinDBG相关
  • 原文地址:https://www.cnblogs.com/wuqilang/p/11369629.html
Copyright © 2011-2022 走看看