zoukankan      html  css  js  c++  java
  • 面向对象的过程进阶

    //字面量的方式
      var obj = {
        name : "beijing",
        age : 12,
        showName : function(){
          return this.name
        },
        hobbies : ["读","写","看"],
        json : {
          "adress" : "天津"
        }
      }

    //构造对象
      var obj = new Object();
      obj.name = "张三";
      obj.age = 21;

    //工厂模式
      function createObj(name,age){
        var obj = new Object();
        obj.name = name;
        obj.age = 1;
        return obj;
      }
      var dog1 = createObj("张三",12)

    //构造函数(es5)
      function Person(name,age){
        //实例属性(创建在构造函数中的属性,都叫实例属性)
        this.name = name;
        this.age = age;
        //实例方法(创建在构造函数中的方法,都叫实例方法)
        this.showName = function(){
          return this.name;
        }
      }
      var ps1 = new Person("张三",18);
      var ps2 = new Person("张三",19);


    //原型
      function Dog(){} //创建构造函数
        //原型属性
        Dog.prototype.name = "小黑";
        Dog.prototype.age = 2;
      //原型方法
      Dog.prototype.showName = function(){
        return this.name;
      };
      Dog.prototype.showAge = function(){
        return this.age;
      };
      var dog1 = new Dog();
      var dog2 = new Dog();

    //混合模式
      function Cat(name,age){
        //实例属性
        this.name = name;
        this.age = age;
      }
      //原型方法
      Cat.prototype.showName = function(){
        return this.name;
      };
      Cat.prototype.showAge = function(){
        return this.age;
      };
      var cat1 = new Cat("小花",4);
      //cat1.name = "小黄";
      console.log(cat1.showName());
    //构造类(es6)
      class Father{
        constructor(name,age){
          this.name = name;
          this.age = age;
        }
        showName(){
          return this.name;
        }
      }
      var ps1 = new Father("北京");
      console.log(ps1.name)

      //继承
      class Son extends Father{
        //创建构造器
        constructor(name,age,like){
          //调用父类构造器,也成为超类,基类
          super(name,age); //必须在第一行调用
          this.like = like;
        }
        showLike(){
          return this.like;
        }
      }
      var son1 = new Son("张三",18,"弹钢琴");
      console.log(son1.showLike());
      console.log(son1.like)

  • 相关阅读:
    前端面试题(08)
    虚拟的DOM与DOM diff
    前端面试题(07)
    前端面试题(06)
    前端面试题(05)
    前端面试题(04)
    canvas(02绘制图形)
    前端面试题03
    HTB-靶机-Irked
    HTB-靶机-RedCross
  • 原文地址:https://www.cnblogs.com/keyanjyl/p/7660561.html
Copyright © 2011-2022 走看看