에스6-es10 필기 3(류의 계승)(류)
17390 단어 es6-es10
// ,
let Animal = function (type) {
this.type = type
this.eat = function () {
}
}
let dog = new Animal ('dog')
let Animal = function (type) {
this.type = type
}
// eat , eat , 。
Animal.prototype.eat = function () {
console.log('eat food')
}
let dog = new Animal ('dog')
// eat eat ( eat )
dog.constructor.prototype.eat = function () {
console.log('error')
}
dog.eat()
클래스 정의
class Aniaml {
//constructor ,
constructor(type){
this.type=type
}
// ,
eat(){
console.log('eat food')
}
}
let dog = new Animal ('dog')
2. 정적 방법 주석: 정적 방법은 클래스에 속하고 클래스 이름을 통해es5에서 정적 방법을 정의하고 정적 방법을 사용해야 한다.
let Animal = function (type) {
this.type = type
}
Animal.prototype.eat = function () {
//
// : , 。
Animal.walk()
console.log('eat food')
}
//
Animal.walk = function () {
console.log('walking')
}
let dog = new Animal ('dog')
es6의 정의 정적 방법 및 정적 방법 사용
class Aniaml {
constructor(type){
this.type=type
}
eat(){
// ,
Aniaml.walk()
console.log('eat food')
}
//es6
static walk(){
console.log('walking')
}
}
let dog = new Animal ('dog')
3. es5와 es6의 계승 es5의 계승 구조 함수, 원형과 실례의 관계: 모든 구조 함수는 원형 대상이 있고 모든 원형 대상은 구조 함수를 가리키는 지침이 있으며 모든 실례는 원형 대상을 가리키는 내부 지침을 포함한다.
let Animal = function (type) {
this.type = type
}
Animal.prototype.eat = function () {
console.log('eat food')
}
//
let Dog = function (){
// , this dog
Animal.call(this,'dog')
this.run = function () {
console.log('run')
}
}
//
Dog.prototype = Animal.prototype
let dog = new Dog('dog')
dog.eat()
es6의 계승
class Aniaml {
constructor(type){
this.type=type
}
eat(){
console.log('eat food')
}
}
class Dog extends Animal {
constructor (type){
//super ,
super(type)
this.age = 2
}
}
let dog = new Dog ('dog')
dog.eat()
4. 함수 매개 변수 기본값es5의 매개 변수 기본값 설정
function add (x,y,z){
if(y===undefined){
y=1
}
if(z===undefined){
z=2
}
return x+y+z
}
es6 매개 변수의 기본값
// , y 7,z 8
// : z=x+y
function add (x,y=7,z=8){
return x+y+z
}
// undefined
console.log(f(1,undefined,43))