• JavaScript 对象属性和 hasOwnProperty 方法


    当为对象实例添加一个属性时,他会覆盖该对象的原型中的具有相同属性名的属性,当我们访问该对象的属性时首先访问的是该对象实例中的属性,如果该属性不存在则访问其原型中的属性。

    我们可以利用hasOwnProperty方法 来识别我们的属性是在对象实例里,还是在该对象的原型(Prototype)里。

    当你查看的属性在对象里时则返回 (true)否则即在(prototype)里返回的是 false;

    只有当我们删除 该属性时,才能访问到 其原型里德属性。

    例如:

    <script type="text/javascript">
    function Person()
    {
     Person.prototype.sex="男";
     Person.prototype.name="我的名字";
     Person.prototype.age=26;
    }
    var p=new Person();
    p.name="哈哈";

    alert(p.name);//哈哈
    alert(p.hasOwnProperty("name"));//true;
    delete p.name;

    alert(p.name);//我的名字;

    alert(p.hasOwnProperty("name"));//false;


    alert(Person.prototype.constructor);//弹出的是该对象的构造函数 原型中的 constructor属性指向的是 其所在对象的构造函数;

    </script>

    所以我们利用hasOwnProperty()方法就可知道什么时候访问的是对象的属性,什么时候访问的是其原型中的属性;

  • 相关阅读:
    面向对象的思维
    343. 整数拆分
    413. 等差数列划分
    303. 区域和检索
    62. 不同路径
    char类型与int类型相加
    mybatis里面resultmap的问题
    easyui的datagrid如何获取一个对象里面的成员对象里面的属性?
    ==和equls的区别
    泛型的使用思想
  • 原文地址:https://www.cnblogs.com/lovejunxia/p/2017879.html
Copyright © 2020-2023  润新知