Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 通过原型链方式实现继承(对象间的继承) 类式继承(构造函数间的继承) 由于js不像Java那样是真正面向对象的语言,js是基于对象的,它没有类的概念。所以,要想实现继承,可以用js的原型prototype机制或者用apply和call方法去实现。
- 原型链(构造函数,原型,实例的关系):
- 每个构造函数都有一个原型对象(prototype),原型对象都包含一个指向构造函数的指针(constructor),而实例都包含一个指向原型对象的内部指针(__proto__)。
- 1.原型式继承
- ```
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="UTF-8">
- <title></title>
- </head>
- <body>
- <script type="text/javascript">
- function Animal(){
- this.name = "小猴";
- this.age = 18;
- }
- Animal.prototype.eat = function(){
- console.log("小猴爱吃香蕉");
- }
- function content(obj){
- function F(){};
- F.prototype = obj; //继承传入的参数
- return F(); // 返回函数的执行结果
- }
- var sup = new Animal();
- var son = content(sup); // 把父类传参
- </script>
- </body>
- </html>
- ```
- 原型式继承: 用一个函数包装一个对象,然后返回这个函数的调用
- 这个函数就变成了可以随意增添属性/方法的对象
- 特点:类似于复制了一个对象,用函数来包装
- 缺点:1. 所有实例都会继承原型上的属性
- 2. 无法实现复用(因为所有的新属性都是后面添加上去)
Add Comment
Please, Sign In to add comment