Object的增。删。查。改。遍历

1.增:

  1.向对象添加属性和方法 (私有) --->   obj.属性 ="";

    2.向对象原型添加方法 (公共) --->      obj.prototype.属性 = "";

2.删

  1.delete   obj.属性名

  2.delete   obj.prototype.属性名

3.查

  1.  obj.hasOwnProperty('属性名") ---> 检查自有属性

  2.  obj.isPrototypeOf("属性名")  --->  检查原型链

  3.  "属性名" in obj   ---> 检查原型链

原型链:由每个对象的__proto__属性连续引用形成的多级关系

4.改 子对象的父对象

  1. 单独修改一个   Object.setPrototypeOf(子对象,父对象)

  2.修改构造的原型对象   构造函数.Prototype = 父对象

  ps:对已通过构造函数创建的对象没有影响

  3.创建对象的同时修改父对象  var newObj = Object.create(父对象)

重写:*子对象觉得父对象的方法不好用*
自己定义同名的,但不同实现的方法

call和apply: 在调用时,临时更换调用方法的对象!
要调用的方法.apply(替换对象,[参数值列表])
要调用的方法.call(替换对象,参数值1,...)

function fun(name,age){
       this.name = name,
       this.age = age,
       this.aa = function(){
             alert(this.age);
    }
}
            
 function student (name,age,sex){
          //调用fun时,临时把this指向了student fun.apply(
this,arguments); this.show = function(){ alert(name+age+sex); } } var s = new student("yun",22,"男"); console.log(s.show());
原文地址:https://www.cnblogs.com/-ooo-/p/5741826.html