zoukankan      html  css  js  c++  java
  • 面向对象

    扩展面向对象术语
    OOA面向对象分析
    OOD面向对象设计
    OOP面向对象编程
    对象的创建方式
    1、字面量的创建方式
    var obj = {
    }
    缺点:多个同类对象创建时代码重复
    2、使用工厂模式创建对象(设计模式之--工厂模式)
    定义一个工厂
    function student(name){
    备料--创建一个对象
    var obj = {
    }
    加工--为创建的对象添加属性方法
    obj.name = name;
    出厂--返回对象
    return obj;
    }
    创建对象 通过函数调用
    var stu1 = student("asdg");
    alert(stu1);
    优点 : 能解决多个同类对象创建时代码重复
    缺点 : 对象是通过函数调用的方式创建的  (不规范)
         不能确定某个对象属于哪一个类(构造函数)
    [判断一个对象属于哪一个构造函数 instanceof
    console.log( stu1 instanceof Object )]
    3、使用构造函数创建对象
    构造函数命名一般是大驼峰 为了和普通函数进行区分
    构造函数中的属性称为实例属性 构造函数中的方法称为实例方法
    构造函数中的this指向构造出来的属性
    function Student(name,tel){
    this.name = name;
    this.tel = tel;
    this.study = function(){
    this.name + "学习";
    }
    }
    var stu1 = new Student();
    var stu2 = new Student();
    console.log(stu1.name);
    优点 : 解决了上述问题
    缺点 : 多个同类对象的方法会被重复创建  空间不共享
    4、使用构造函数创建对象(方法和属性都是原型属性和原型方法)
    function Student(){
    }
    原型属性
    Student.prototype.name = "faasf";
    原型方法
    Student.prototype.studt = function(){
    return this.name + "在学习";
    }
    var stu1 = new Student();
    var stu2 = new Student();
    console.log(stu1.study == stu2.study);
    优点 : 能够解决多个同类对象创建史空间不共享问题 原型方法空间共享
    缺点 : 属性不能更改
    5、混合
    function Student(name){
    this.name = name;
    }
    原型方法
    Student.prototype.studt = function(){
    return this.name + "在学习";
    }
    var stu1 = new Student();
    var stu2 = new Student();
    console.log(stu1.study == stu2.study);
    优点 : 解决了上述所有问题
    缺点 : 不规范
  • 相关阅读:
    获得CCNA和CCNP及CCIE认证的必备条件和有效期绍
    Js6利用class创建类
    Js6利用class创建类
    权益证明机制 (PoS):权益决定验证权,谁更有钱谁发言
    关于共识机制的一些想法
    有向无环图 (DAG) 技术:超越区块链的分布式账本
    寻找一种易于理解的一致性算法(扩展版)
    如何使用python语言中的方法对列表进行增删改操作
    如何操作python语言中的元素并计算相应的属性
    如何操作python语言中的列表并获取对应的元素
  • 原文地址:https://www.cnblogs.com/ginelle/p/10361262.html
Copyright © 2011-2022 走看看