ES6 对象
以前的定义类的方式
let obj={};//字面式定义
function Obj(name,age){
this.name=name;
this.age=age;
};
Obj.prototype.showName(){}
通过函数,注意首字母最好大写
或者
Object.assign(Obj.prototype,{showName:function(){}})
let a=new Obj()
ES6 类(关键字class)
class Person{ constructor(name,age){ this.name=name; this.age=age }; showName:function(){ } } new Person()
1还可以用变量
let aaa="strive"; class Person{ constructor(name,age){ this.name=name; this.age=age }; showName:function(){ } [aaa](){ } } let person=new Person(); person.strive();或者 person[aaa]()
class 没有预提升的功能
1.第一种情况 let person=new Person() 这样会报错 class Person{ } 2:第二种情况 let person=new Person();这个是正确的。有预提升的功能 function Person(){ }
class 里面还有取值函数(getter),设值函数(setter)
class Person{ constructor(){ } get aaa(){ return "aaa的属性" } set aaa(val){ console.log("设置aaa的属性") } } let p1=new Person(); p1.aaa;这个就会调用get方法 p1.aaa="asadsad";这样写就会调用set方法