• 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"
  • 相关阅读:
    VUE3 使用 Ant Design Vue 图标库的图标
    Vue3 前端获取数据后 “响应式表示” ref and reactive
    Vue3 使用 生命周期函数
    SpringBoot 前后端分离 跨域小问题
    Vue 使用 Ant Design Vue 。
    SB + Mybatis generator 实现模糊查询 且 过滤数据返回体 + Bean转换
    springboot+mybatis 利用插件生成代码
    spark-sql-03从mysql获取数据上传数据
    spark-sql-02
    sprak-sql-01-基础
  • 原文地址:https://www.cnblogs.com/liuhanz/p/4792271.html
Copyright © 2020-2023  润新知