zoukankan      html  css  js  c++  java
  • js对象小记

      js中每个对象都连接到一个原型对象,并且可以从中继承属性。所有通过对象字面量创建的对象都连接到Object.prototype。

      当我们创建一个新对象时,可以通过Object.create()函数来创建一个使用原对象为其原型的新对象。

    var a ={
        name:"liu",
        nickname:"lh"
    }
    var anotherA = Object.create(a);
    anotherA.nickname = "chu";
    for(var i in anotherA){
       console.log(i+":"+anotherA[i]);
    }

      发现输出的name与nickname顺序发生了改变

    nickname:chu
    name:liu

      因此这也是我们不推荐使用for in的原因。因为输出的顺序是不定的。

      然而,原型连接在更新时是不起作用的。当我们对新对象作出改变时,不会触及该对象的原型。当我们尝试去获取某个属性值,但改对象没有该属性,那么js会从原型对象中获取属性值。如果那个原型对象也没有该属性,那么就再去它的原型中寻找,直到终点Object.prototype为止。原型关系是一个动态关系,如果在对象创建之后再向原型对象添加属性,那么从该对象上仍然能访问到该属性。

    a.age = "21";
    anotherA.age;//21

      为了判断该属性是不是对象独有的属性,可使用hasOwnProperty方法,hasOwnProperty不会检查原型链。

    anotherA.hasOwnProperty("nickname");//true
    anotherA.hasOwnProperty("name");//false

      我们可以通过delete来删除对象的属性。这样对象的属性就再次指向了原型对象的属性值。

    delete anotherA.nickname;
    anotherA.nickname;//"lh"
  • 相关阅读:
    2007上半年网络游戏企业报告总结
    2007中国网络游戏调查报告
    3G门户网总裁张向东:怎分享3G大蛋糕
    网络在线游戏开发心得(服务器端、Java)
    Apache服务器SSL配置
    详解 Windows下apache 实现 SSL
    10个既绚又实用的JQuery特效教程
    Zend Studio 快捷键
    jQuery最佳实践
    2月份13个jQuery最佳插件推荐
  • 原文地址:https://www.cnblogs.com/liuhanz/p/4792271.html
Copyright © 2011-2022 走看看