zoukankan      html  css  js  c++  java
  • 第6章 对象 前言

    1. JS中对象是一种复合值: 它将很多值聚合在一起, 可通过名字访问这些值. 对象也可以看做属性的无序集合, 每个属性都是一个名/值对. 属性名是字符串, 因此我们把对象看成从字符串到值的映射.这种映射数据结构还有多种其他叫法, 比如hash表, 字典, 关联数组.

    2. JS对象除了保持自有属性, 还可以从一个称为原型(ptototype)的对象继承属性. 这种原型式继承是JS的核心特征.

    3. 除了字符串, 数字, 布尔值(true, false), null和undefined之外, JS中的值都是对象. 尽管字符串, 数字和布尔值不是对象, 但它们的行为和不可便对象非常类似.

    4. 我们通过引用而非值来操作对象. 如果对象x是指向一个对象的引用, 那么执行代码var y = x; 变量y也是指向同一个对象的引用, 而非这个对象的副本. 通过变量y修改这个对象亦会对变量x造成影响.

    5. 对象的属性包括属性名, 属性值和属性特性(property attribute), 很明显, 前面说的名/值对即为属性名和属性值. 属性名可以是包含空字符串在内的任意字符串, 对象中不能存在两个相同的属性名. 属性值可以是任意类型的JS值, 在ECMAScript5中属性值还可以是setter/getter函数.

    6. 除了名/值对之外, JS对象的每个属性还有3个与之相关的值, 称为"属性特性". 分别是可写性, 可枚举性, 可配置性. 在ECMAScript5之前, 通过JS代码创建的对象属性都是可写, 可枚举, 可配置的. ECMAScript5中则可以对这三个特性加以设置.

    7. JS对象除了包含属性之外, 还拥有3个相关的对象特性(object attribute). 分别是对象的原型(prototype), 对象的类(class), 对象的扩展标记(extensible flag).

    8. 术语说明:

    • 内置对象(native object):“JS全局对象”的各种属性。
    • 宿主对象(host object):“window全局对象”的除了内置对象之外的各种属性。
    • 自定义对象(user-defined object):运行中的JS代码创建的对象。
    • 自有属性(own property):直接在对象中定义的属性。
    • 继承属性(inherited property):在对象的原型对象中定义的属性。

      

  • 相关阅读:
    Leetcode Plus One
    Leetcode Swap Nodes in Pairs
    Leetcode Remove Nth Node From End of List
    leetcode Remove Duplicates from Sorted Array
    leetcode Remove Element
    leetcode Container With Most Water
    leetcode String to Integer (atoi)
    leetcode Palindrome Number
    leetcode Roman to Integer
    leetcode ZigZag Conversion
  • 原文地址:https://www.cnblogs.com/iamswf/p/4587257.html
Copyright © 2011-2022 走看看