💡 ES6에서 클래스가 도입되었다. 하지만 이 클래스가 기존의 프로토타입 기반 객체지향 모델을 폐지하고 새로운 객체지향 모델을 제공하는 것은 아님. 새로운 객체 생성 메커니즘으로 봐야함. 이후 클래스에서 추가적으로 공부 필요
const arr1 = [4, 2, 1]
arr1.sort()
console.log(arr1) // [1, 2, 4]
.sort()
를 붙일 수 있는 이유?function foo() { // 부모
this.a = "strike"
this.b = "snowball"
}
var obj = new foo() // 자식 {q : "strike", w : "snowball"}
function foo() {
this.a = "strike"
this.b = "snowball"
}
var obj = new foo()
foo.prototype.name = "kim"
foo // ƒ foo() {
// this.a = "strike"
// this.b = "snowball"
obj.name // "kim"
}
function foo() { // 이곳에 추가를 하면 자식이 {q : "strike"} 를 직접 가진다.
this.a = "strike"
this.b = "snowball"
}
var obj = new foo()
foo.prototype.name = "kim" // 이곳에 추가를 하면 부모만 {name : "kim"}을 가짐.
foo // ƒ foo() {
// this.a = "strike"
// this.b = "snowball"
obj.name // "kim"
}
function foo() {
this.a = "strike"
this.b = "snowball"
}
var obj = new foo()
foo.prototype.name = "kim"
foo
obj.name // obj에서 데이터를 뽑을 때 사용
}
const arr1 = [4, 2, 1] // 인간의 방식
const arr2 = new Array(4, 2, 1)
arr2.sort()
console.log(arr2) // [1, 2, 4]
Array.prototype // sort, map, length 등등 사용하던 것들이 prototype에 들어있다.