Guest User

Untitled

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