[자바스크립트] Object.create() f랑myclass.prototype = Object.create(superclass.prototype); 가 뭐가다른가?
[자바스크립트] Object.create() f랑myclass.prototype = Object.create(superclass.prototype); 가 뭐가다른가?
아예 객체의 속성을 다 가져오는거랑
프로토타입만 가져오는게 차이일 것이다.
superclass = function (){
this.a = 3;
this.b = 15;
}
superclass.prototype.a = function (){
console.log('haha');
};
myclass = function (){};
myclass.prototype = Object.create(superclass.prototype);
// myclass.prototype.a = 51;
console.log(myclass);
console.log(myclass.__proto__);
console.log(myclass.prototype.a);
위와 아래는 같다.
function Constructor() {}
o = new Constructor();
// 위는 아래와 같습니다:
o = Object.create(Constructor.prototype);
// 물론, 생성자 함수에 실제 초기화 코드가 있다면
// Object.create()는 그것을 반영할 수 없습니다
myclass = Object.create(superclass)와 MyClass.prototype = Object.create(SuperClass.prototype);는 두 가지 다른 방식으로 JavaScript의 객체 지향 프로그래밍 모델을 사용합니다. 이 두 방식의 차이점은 '객체의 생성 방식'과 '상속'에 있습니다.
결론적으로, myclass = Object.create(superclass)는 새로운 객체를 생성하고, 그 객체가 다른 객체의 속성과 메소드를 상속받게 하는 방법이며, `MyClass
댓글 영역