zoukankan      html  css  js  c++  java
  • js模式

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
    </head>
    <body>
        
    </body>
    <script type="text/javascript">
    
    // 面向对象的语言有一个标志,即拥有类的概念,抽象实例对象的公共属性与方法,基于类可以创建任意多个实例对象,一般具有封装、继承、多态的特性!但JS中对象与纯面向对象语言中的对象是不同的,ECMA标准定义JS中对象:无序属性的集合,其属性可以包含基本值、对象或者函数。可以简单理解为JS的对象是一组无序的值,其中的属性或方法都有一个名字,根据这个名字可以访问相映射的值(值可以是基本值/对象/方法)。
    
    
        // 1、工厂模式
    
    function createPerson(name, age, job) {
        var o = new Object();
        o.name = name;
        o.age = age;
        o.job = job;
        o.getName = function () {
            return this.name;
        }
        return o;//使用return返回生成的对象实例
    }
    var person = createPerson('Jack', 19, 'SoftWare Engineer');
    
    
    // 4、组合构造函数及原型模式
    
    //       目前最为常用的定义类型方式,是组合构造函数模式与原型模式。构造函数模式用于定义实例的属性,而原型模式用于定义方法和共享的属性。结果,每个实例都会有自己的一份实例属性的副本,但同时又共享着对方方法的引用,最大限度的节约内存。此外,组合模式还支持向构造函数传递参数,可谓是集两家之所长。
    
    function Person(name, age, job) {
        this.name = name;
        this.age = age;
        this.job = job;
        this.lessons = ['Math', 'Physics'];
    }
    Person.prototype = {
        constructor: Person,//原型字面量方式会将对象的constructor变为Object,此外强制指回Person
        getName: function () {
            return this.name;
        }
    }
    var person1 = new Person('Jack', 19, 'SoftWare Engneer');
    person1.lessons.push('Biology');
    var person2 = new Person('Lily', 39, 'Mechanical Engneer');
    alert(person1.lessons);//Math,Physics,Biology
    alert(person2.lessons);//Math,Physics
    alert(person1.getName === person2.getName);//true,//共享原型中定义方法
    
    // 在所接触的JS库中,jQuery类型的封装就是使用组合模式来实例的!!!
    
    
    
    
    </script>
    </html>
    若有恒,何须三更睡五更起;最无益,莫过于一日曝十日寒
  • 相关阅读:
    eclipse在线安装mybatis generator插件、及插件的使用
    Oracle 的SID 与 Service_Name 区别
    Mybatis generator 配置报错
    Mybatis generator 生成Javabean报错:Table configuration with catalog null, schema public, and table globalpage did not resolve to any tables
    pom.xml中添加oracle数据库驱动包报错: Missing artifact com.oracle:ojdbc14:jar:10.2.0.4.0
    Eclipse中10个最有用的快捷键组合
    Spring Tool Suite 配置和使用
    【搜索】【动态规划】【杂题】——洛谷P1514.引水入城
    c++ 矩阵求逆
    LNK1104 无法打开文件 exe
  • 原文地址:https://www.cnblogs.com/21haoxingxiu/p/7279850.html
Copyright © 2011-2022 走看看