美文网首页
JavaScript对象

JavaScript对象

作者: 刚子来简书啦 | 来源:发表于2020-09-27 11:31 被阅读0次

    JavaScript的简单数据类型包括数字、字符串、布尔值、null值和undefined值。其他所有的值都是对象。数字、字符串和布尔值“貌似”对象,因为它们拥有方法,但它们是不可变的。JavaScript中的对象是可变的键控集合。在JavaScript中,数组是对象,函数是对象,正则表达式是对象,当然,对象自然也是对象。

    对象是属性的容器,其中每个属性都拥有名字和值。属性的名字可以是包括字符串在内的任意字符串。属性值可以是除undefined值之外的任何值。

    JavaScript里的对象是无类型的。它对新属性的名字和属性的值没有限制。对象适合用于汇集和管理数据。对象可以包含其他对象,所以它们可以容易地表示成树状或图形结构。

    JavaScript包含一种原型链的特性,允许对象继承另一个对象的属性。正确地使用它能减少对象初始化时消耗的时间和内存。

    || 和 && 的用法
    var status = flight.status || "unknown";
    flight.equipment && flight.equipment.model;

    对象通过引用传递,它们永远不会被复制。

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

    原型连接只有在检索值的时候才被用到。如果我们尝试去获取对象的某个属性值,但该对象没有此属性名,那么JavaScript会试着从原型对象中获取属性值。如果那个原型对象也没有该属性,那么再从它的原型中寻找,依此类推,直到该过程最后到达终点Object.prototype。如果想要的属性完全不存在于原型链中,那么结果就是undefined值。这个过程称为委托。

    原型关系是一种动态的关系。如果我们添加一个新的属性到原型中,该属性会立即对所有基于该原型创建的对象可见。

    for in 语句可用来遍历一个对象中的所有属性名。该枚举过程将会列出所有的属性——包括函数和你可能不关心的原型中的属性——所以有必要过滤掉那些你不想要的值。最为常用的过滤器是 hasOwnProperty 方法,以及使用 typeof 来排除函数。

    属性名出现的顺序是不确定的,因此要对任何可能出现的顺序有所准备。如果想要确保顺序,最好的方法是创建一个数组,在其中以正确的顺序包含属性名。

    delete可以用来删除对象的属性。如果对象包含该属性,那么该属性就会被移除。它不会触及原型链中的任何对象。删除对象的属性可能会让来自原型链中的属性透现出来。

    JavaScript可以随意地定义全局变量来容纳你的应用的所有资源。最小化使用全局变量的方法之一是为你的应用只创建一个唯一的全局变量。只要把全局性的资源都纳入一个名称空间下,你的程序与其他应用程序、组件或类库之间发生冲突的可能性就会显著降低。

    相关文章

      网友评论

          本文标题:JavaScript对象

          本文链接:https://www.haomeiwen.com/subject/ufahwhtx.html