传统面向对象多态
例如:
//1>必须有继承(是多态的前提)
//2>必须有重写(子类重写父类的方法)
//3>必须有父类引用指向子类对象
class Shape{ getArea(){} }
class Reactangle extends Shape{ getArea(){
return 100
} }
class Circle extends Shape{
getArea(){
return 200
}
}
var r = new Rectangle() var c = new Circle() //多态:当不同的数据类型执行同一个操作时,如果表现出来的行为(形态)不一样,那么就是多态的体现。
function calcArea(shape:Shape){
console.log(shape.getArea())
}
calcArea(r)
calcArea(c)
js面向对象多态
js字面量增强写法
var name = "why" var age = 18 var obj = { //如果key和value一样就可以这样简写 // 属性的简写 name, age,
foo:function(){ }, //method 方法的简写 bar(){ }, //computed 计算属性名 [name + 123]:'heheh' }
js解构
1.数组的解构
var names = ['abc','cba','nba'] // var item1 = names[0] // var item2 = names[1] // var item3 = names[2] //数组的解构:[] var [item1,item2,item3] = names; console.log(item1,item2,item3);
//解构后面的元素 var [ ,item2,item3] = names
//解构出一个元素,后面的元素放到一个新的数组中 var [itema,...newNames] = names
//解构的默认值 var [itema,itemb,itemc,itemd = 'aaa'] = names
2.对象的解构
var obj = { name:'why', age:18, height:1.88 } //对象的解构:{} var {name,age,height} = obj
function add({name,age}){ //将对象传入函数,直接解构出来 console.log(name,age); } add(obj)