let person = newPerson() person.name = "xiaobai" person.setage = 18//调用set方法 console.log(person) //Person {name: 'xiaobai', age: 18} //私有属性无法通过.属性名的方式访问 console.log(person.#age)//Uncaught SyntaxError: Private field '#age' must be declared in an enclosing class //调用实例方法 person.eat("火锅") //18岁的xiaobai正在吃火锅 //调用静态方法 console.log(Person.sum(10,20)) //30 //调用构造方法 let person1 = newPerson("xiaoming",20) console.log(person1)
类的继承
在ES6的语法糖中,继承也是可以使用的
1 2 3 4 5 6 7 8 9 10 11 12
classStudentextendsPerson{ score study(){ console.log(`${this.getage}岁的${this.name}正在努力学习,考试获得了${this.score}分`) } constructor(name,age,score){ super(name,age) this.score = score } } let stu = newStudent("xiaobai",18,100) stu.study() //18岁的xiaobai正在努力学习,考试获得了100分
对象拷贝的语法糖
浅拷贝
浅拷贝是多一个引用指向同一个对象
1 2 3 4 5 6 7 8 9
let arr = [1,2,3] let arr2 = arr arr[0] = 100 console.log(arr2) // [100, 2, 3]
person = {name : "xiaobai",age : 18} person2 = person person.name = "xiaohei" console.log(person2) //{name: 'xiaohei', age: 18}
深拷贝
深拷贝是完全一个全新的对象
可以通过spread展开赋值
1 2 3 4 5 6 7 8 9
let arr = [1,2,3] let arr2 = [...arr] arr[0] = 100 console.log(arr2) // [1, 2, 3]