JavaScript原型

原型

定义

  • 每一个对象都有原型
  • 原型仍然是一个对象
  • 模拟实现面向对象的继承性   求原型 var list=[]; console.log(Array.prototype); console.log(list.proto); 给所有数字的原型添加方法 Number.prototype.add=function(number){ return number+this; } var num=100; console.log(num.add(500));

原型链

  • 对象的原型还有原型
  • 对象除了可以使用自有属性还可以继承原型上的属性

         var arr=[];
        console.log(arr); //Array(0)
    
        console.log(arr.__proto__); //Array(0)
        console.log(arr.__proto__.__proto__); //object
    
        var obj={};
        console.log(obj); //object
        console.log(obj.__proto__);  //object
    
        function User(){
    
        }
        var u=new User();  
        console.log(u);  //user
        console.log(u.__proto__);  //object
        console.log(u.__proto__.__proto__);  //object
    
  • 判断属性是自有的还是原型继承的

        console.log(arr.hasOwnProperty("length"));  //true
        console.log(arr.hasOwnProperty("push")); //false
    
  • 创建对象并指定对象的类型(ECMA5)

        var o=Object.create(arr);
        console.log(o);  //Array
        console.log(o.constructor); //返回对象类型  函数
        console.log(o.__proto__); //Array(0)
原文地址:https://www.cnblogs.com/zgh929/p/7417420.html