9.2.1、原型

  1. js的继承是基于原型的继承
  1. //toString(); 因为数组的原型上有字符串toString( );
  2. //push,unshift() 因为数组原型上有
  3. //原型:
  4. //1.obj.__proto__ 找到它的原型对象
  5. //2.数组上的方法都是挂载在原型上(Array.prototype)的
  6. var arr = [1,2,3];
  7. console.log(Array.prototype)
  8. console.log(arr.__proto__ == Array.prototype)

9.2.2、原型构造

  1. /* Function */
  2. var arr = new Array(1,2,3);
  3. /* Array.prototype */
  4. console.log(arr);
  5. /* sum */
  6. var obj = [4,5,6];
  7. Array.prototype.sum = function(params){
  8. if(Array.isArray(params)){
  9. return params.reduce((a,b)=>a+b);
  10. }
  11. }
  12. console.log(arr.sum(arr));
  13. console.log(obj.sum(obj));

9.2.3、原型对象作用

  1. 1.原型对象:是某一类对象的基类,所有的创建的对象都会共享该原型对象(共享机制)
  2. 2.作用:将对象通用的方法挂载在原型上
  1. function Student(name,age){
  2. this.name = name;
  3. this.age = age;
  4. }
  5. Student.prototype.sayName = function(){
  6. console.log(this.name)
  7. }
  8. var s = new Student("he",21);
  9. console.log(s)
  10. console.log(Student.prototype)

原型.png