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"
  • 相关阅读:
    leetcode 175 Combine Two Tables join用法
    spark学习及环境配置
    html表格设计
    免费的论文查重网站
    php利用msqli访问数据库并实现分页,
    php利用href进行页面传值的正确姿势
    php+mysql时报错:Unknown column '' in 'field list'解决方案
    使用XMLHttpRequest解析json
    用自定义的函数将gps转换为高德坐标
    WeakHashMap回收时机
  • 原文地址:https://www.cnblogs.com/liuhanz/p/4792271.html
Copyright © 2011-2022 走看看