zoukankan      html  css  js  c++  java
  • 微信小游戏开发之JS面向对象

    //游戏开发之面向对象
    //在js的开发模式中有两种模式:函数式+面向对象
    //1.es5
    // 拓展一:函数的申明和表达式之间的区别
    // 函数的申明:
    // function funA(){
    //
    // }
    // 表达式的写法:(推荐)
    // let funB=function(){
    //
    // }
    // 区别在于表达式的写法是会变量的提升!在执行的时候会要去合适的判断才执行
    // callback&&callback()
    
    // (function () {
    // //所要执行的......
    // })()
    // 1.最简单的创建对象的:(单一)
    // var obj=new Object();
    // var obj={}
    //
    // obj.name="xie";
    // obj.age=21;
    // obj.say=function(){
    // console.log(this.name+this.age);
    // }
    // 2.工厂化构造函数创建(拥有共同的方法)
    var Animal=function(name,age) {
    this.name=name;
    this.age=age;
    this.say=function(){
    console.log(this.name+" "+this.age);
    }
    }
    //原型链对象 实例共享属性
    Animal.prototype.say=function(){
    console.log(this.name+""+this.age);
    }
    var cat=new Animal("小狗","3")
    cat.say();
    // 方法被其他对象执行
    var params={
    name:'小猫',
    age:4,
    }
    //cat的say方法被params这个对象调用,并且采用params的参数
    apply:方法能劫持另外一个对象的方法,继承另外一个对象的属性.
    Function.apply(obj,args)方法能接收两个参数
    obj:这个对象将代替Function类里this对象
    args:这个是数组,它将作为参数传给Function(args-->arguments)
    /*定义一个人类*/
    3 function Person(name,age)
    4 {
    5 this.name=name;
    6 this.age=age;
    7 }
    8 /*定义一个学生类*/
    9 functionStudent(name,age,grade)
    10 {
    11 Person.apply(this,arguments);
    12 this.grade=grade;
    13 }
    14 //创建一个学生类
    15 var student=new Student("qian",21,"一年级");
    16 //测试
    call示例
    在Studen函数里面可以将apply中修改成如下:
    Person.call(this,name,age);
    cat.say.apply(params)
     
     
     
    ES6:
    class Animal{
    constructor(name="",age=1){
    this.name=name;
    this.age=age;
    }
    say(){
    console.log(this.name+this.age);
    }
    }
    class Cat extends Animal{
    constructor(name,age){
    super(name,age);
    }
    //覆盖父类的方法
    say(){
    //想要执行父类的方法
    super.say();
    }
    }
    
    
  • 相关阅读:
    win10彻底永久关闭自动更新的方法
    kibana.yml配置
    完整记录安装elasticsearch的过程
    docker下nginx的安装
    centos7删除mysql
    21 | panic函数、recover函数以及defer语句 (上)
    07 | 数组和切片
    SNAPSHOT包上传nexus成功,下载失败
    extract method(提炼函数)
    枚举中不要再出现数字了
  • 原文地址:https://www.cnblogs.com/allenxieyusheng/p/8944746.html
Copyright © 2011-2022 走看看