Class

Class和普通构造函数有何区别

1 JS 构造函数
2 Class基本语法
3 语法糖
4 继承

JS 构造函数

function MathHandle(x,y) {
   this.x = x;
   this.y = y;
}

MathHandle.prottotype.add = fucntion () {
    return  this.x +this.y
};

var  m = new  MathHandle(1,2)
console.log(m.add())

Class 语法

class MathHandle {
    constructor(x,y) { 
         this.x =x 
         this.y = y
       }
       add () { 
            return this.x +this.y
          }
  }
const m  = new  MathHandle(1,2)
console.log(m.add())

语法糖

class MathHandle { 
   // ....
   }
typeof MathHandle //function
MathHandle  === MahHandle.prototype.constructor // true

//这种语法糖形式,看起来和实际原理不一样
//形式上强行模仿,Java,C#,却失去了它的本性和个性
class MathHandle{
    constructor(x,y) {
        this.x = x
        this.y =y
    }
    add () {
         return  this.x + this.y
     }
 }
注:class本身就是语法糖

继承-JS

//动物
function  Animal() { 
   this.eat = function () { 
        console.log("animal  eat")
    }
  }
  //狗
  function  Dog() { 
    this.bark = function () { 
         console.log("dog   bark")
      }    
}

Dog.prototype = new  Animal()
//哈士奇
var  hashiqi = new Dog()

Class继承

clss Animal { 
     constructor(name) { 
          this.name =name
      }
      eat() { 
           console.log ( '${this.name} eat')
       }
  }
class Dog extends  Animal {
     constructor (name) { 
        this.name = name
      }
      say () {
          console.log('${this.name} say')
       } 
 }
const  dog  = new  Dog('哈士奇')
dog.say()
dog.eat()

 function  Animal() {
     this.eat = function () {
         console.log("Animal eat")
      }
  }
//dog
function Dog(){
 this.bark = function () {
     console.log("Dog  bark")
  }
}

//绑定原型,实现继承
Dog,prototype =new Dog()
var   hahsiqi = new  Dog()



class  Animal {
   constructor (name) {
       this.name = name
    }
    eat () { 
      alert  (this.name)
      }
 }

class  Dog extend Animal{
    constructor(name) { 
        super(name)
        this.name = name
     }
 }
const   dog = new  Dog("hashiqi")
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值