zoukankan      html  css  js  c++  java
  • for...in 循环对象原型链问题

    let f = function () {
      this.a = 1;
      this.b = 2;
    };
    let o = new f();   // {a: 1, b: 2}
    f.prototype.b = 3;
    f.prototype.c = 4;
    for(let i in o){
      console.log(i) //a,b,c   if(o.hasOwnProperty(i)){     console.log(i) //a,b   } }

      for...in语句使您可以遍历对象的所有属性的名称。属性列表包括通过原型链继承的所有那些属性。所以需要 hasOwnProperty 过滤

    for (name in object) {
      if (object.hasOwnProperty(name)) {
        doSomething(name);
      }
    }

    但克隆对象时例外

    for (prop in obj) {
      a[prop] = obj[prop];  // Compliant by exception
    }
  • 相关阅读:
    POJ 2689
    NEFU 109
    HDU 2098
    NEFU 2
    NEFU 117
    NEFU 84
    POJ 1061
    NEFU116 GCD
    NEFU 115
    HDU 2099
  • 原文地址:https://www.cnblogs.com/ckmouse/p/13494626.html
Copyright © 2011-2022 走看看