• 对象Object


    对象可以被看做字符串到值的映射,这种数据结构具有多种叫法,如:散列、散列表、字典、关联数组

    属性特性:

      1. 可写,是否可以设置该属性的值

      2. 可枚举,是否可以通过for/in循环返回该属性

      3. 可配置,是否可以删除或修改该属性 

    对象拥有的三个相关的对象特性:

      1. 对象的原型(prototype)指向另外一个对象(a),本对象(a)的属性继承至它的原型对象

      2. 对象的类(class)是一个标识对象类型的字符串(new Array, new Object, new Error, new Date -- new 关键字后跟随的单词是否就是标识对象的类型)

      3. 对象的扩展标记(extensible flag)指明了是否可以向该对象添加新属性。

    使用术语区分JS中的三类对象和两类属性:

      1. 内置对象(native Object):是由ECMAScript规范定义的对象、类。例如: 数组、函数、正则表达式、日期。

      2. 宿主对象(host Object):是由Javascript解释器所嵌入的宿主环境所定义的(比如web浏览器)定义的。客户端javascript中表示网页结构的HTMLElement对象均是宿主对象。既然宿主环境定义的方法可以当成普通的Javascript函数对象,那么宿主对象也可当成内置对象。

      3. 自定义对象(user-defined Object):是由运行中的Javascript创建的对象。

      4. 自有属性(own property): 是直接在对象中定义的属性

      5. 继承属性(inherited property):是在对象的原型对象(原型对象是否是构造函数???)中定义的属性

    对象的创建有三种形式: 对象直接量、关键字new 和 (ECMAScript 5中的)Object.create() 函数来创建对象

      1. 最简单的对象直接量 var a = {};  这句话可被解释为我们直接创建了一个对象 "{}",并将它的引用地址复制给了 a

            2. 关键字 new创建并初始化一个新对象:new 关键字后会跟随一个函数调用 var a = new Array();

          1> 构造函数: new 关键字后跟随的函数,我们称为构造函-)当新创建一个函数时,他只是普通函数,只有该函数被new运算符初始化后,我们才称该函数是构造函数。

               2> Javascript 语言核心中的原始类型都包含内置函数。例如:new Array() / new RegExp() / new Object() / new Date()

         3. Object.create()创建对象(假设为a): 第一个参数代表所创建对象(a)的原型,第二个为可选参数用于对第一个参数(对象)的属性进行描述【配置属性特性,上面有介绍属性特性】 var a = Object.create({ x:1, y:2 }); a继承了属性 x和y

         1> 可以通过将第一个参数传入null创建一个没有原型的对象,但是这种方式创建的对象不会继承任何东西,甚至不包括基础方法,比如: toString(), 它将不能和 “+“ 运算符一起正常工作。

              2> 创建一个普通的空对象 var o3 = Object.create(Object.prototype);

      

  • 相关阅读:
    探秘小程序(9):父页面与自定义组件交互
    探秘小程序(8):scroll-view组件
    探秘小程序(7):view组件
    探秘小程序(6):微信支付
    探秘小程序(5):用户信息
    通向全栈之路(6)—无密码ssh连接
    探秘小程序(4):授权
    探秘小程序(3):登录
    探秘小程序(2):自定义组件
    [Python]json对象转换出错expected string or buffer python
  • 原文地址:https://www.cnblogs.com/wssjzw/p/10617857.html
Copyright © 2020-2023  润新知