이 글에서는 프로토타입 기반 상속, 생성자 상속, 기생 상속이라는 세 가지 주요 방법에 초점을 맞춰 ES5의 상속 접근 방식을 설명합니다. 이 기사에서는 ex
ES5에서 상속은 여러 접근 방식을 통해 달성할 수 있습니다.
이것이 가장 일반적인 접근 방식입니다. ES5에서. 여기에는 기본 클래스(부모)를 만든 다음 기본 클래스의 속성과 메서드를 상속하는 새 개체를 만들어 이를 "하위 클래스화"하는 작업이 포함됩니다. 이는 하위 클래스 객체의 __proto__
속성을 조작하여 수행됩니다.__proto__
property of the subclass objects.
<code class="javascript">const Animal = { eat() { console.log("Eating..."); } }; const Dog = { __proto__: Animal, bark() { console.log("Woof!"); } }; const myDog = Object.create(Dog); myDog.eat(); // logs "Eating..." myDog.bark(); // logs "Woof!"</code>
This approach involves creating a base class constructor function and then extending it by defining a new constructor function that takes the base class constructor as an argument and adds additional properties and methods.
<code class="javascript">function Animal() { this.eat = function() { console.log("Eating..."); } } function Dog(name) { Animal.call(this); this.name = name; this.bark = function() { console.log("Woof!"); } } const myDog = new Dog("Luna"); myDog.eat(); // logs "Eating..." myDog.bark(); // logs "Woof!"</code>
This approach involves creating a temporary object that inherits from the base class and then uses that object to create the desired subclass. It is similar to prototype-based inheritance, but instead of modifying the __proto__
<code class="javascript">const Animal = { eat() { console.log("Eating..."); } }; const Dog = (function() { function AnimalProxy() {} AnimalProxy.prototype = Animal; const proxy = new AnimalProxy(); proxy.bark = function() { console.log("Woof!"); } return proxy; })(); const myDog = Object.create(Dog); myDog.eat(); // logs "Eating..." myDog.bark(); // logs "Woof!"</code>
__proto__
속성을 수정하는 대신 기본 클래스와 하위 클래스 사이의 브리지 역할을 하는 새 객체를 생성합니다.🎜rrreee위 내용은 es5에서 상속을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!