美文网首页
【01】对象的基础信息

【01】对象的基础信息

作者: 吃码小妖 | 来源:发表于2019-12-15 05:32 被阅读0次

    【01】对象的基础信息

    【01】对象可以从一个称为原型的对象上继承属性和方法。

    【02】对象用中括号读取属性,属性名可以包含一些特殊字符(11种)。这些字符在点运算符中就会语法报错。

    object["!@#$%^&*()."] = true;//合法
    

    【03】技术术语:

    • “原型式继承”(prototypal inheritance)
    • 实例(instance)
    • 实例化(instantiation /ɪnstænʃɪ'eɪʃən/ )
    • 特性和属性。
    • 绑定(binding)
    • 面向对象(Object-Oriented( ['ɔ:rɪəntɪd]),OO)
    • 面向对象编程(Object Oriented Programming,OOP,面向对象程序设计)
    • 表达式上下文(expression context)
    • 语句上下文(statement context)
    • Literal Notation字面量。

    陌生名词有:集合,无序,映射,名值对,数据类型,数据结构,引用,操作对象。

    【04】在代码的最顶层——不在任何函数内的JS代码——可以使用JS关键字this引用全局对象:

    var global = this; // 定义一个引用全局对象的全局变量
    

    【01】全局对象(global object),全局对象的属性是全局定义的变量,JS程序可以直接使用。比如window.alert()可以直接使用alert();

    【02】当JS解释器启动时(或者任何Web浏览器加载新页面的时候),它将创建一个新的全局对象,并给它一组定义的初始属性:

    全局属性,比如undefined、Infinity和NaN

    全局函数,比如isNaN()、parseInt()和eval()

    构造函数,比如Date()、RegExp()、String()、Object()和Array()

    全局对象,比如Math和JSON

    【03】全局对象的初始属性并不是保留字,但它们应该当做保留字来对待。

    【05】在客户端JS中,在其表示的浏览器窗口中的所有JS代码中,Window对象充当了全局对象。

    【06】如果代码中用var声明了一个全局变量,这个全局变量就是全局对象的属性。

    【07】解释器和解析器?是同一个概念么?和JS引擎是同一个概念么?

    是的,内置于浏览器中。

    【08】吃码小妖:所谓的构造函数指的是:用于创建对象的函数。

    Object,String(),Number(),Boolean()。

    【09】引用就和指针一个概念么?对某个对象的引用,就是某个对象的指针?

    是的。

    var obj = new Object();

    obj是一个变量名。存放的是新创建的对象的指针。可以把obj变量称为obj对象(吃码小妖:代称?)。

    一般称obj是对新创建对象的引用。

    【10】对象的定义:(对象是什么?)

    ECMA-262把对象(object)定义为“属性的无序集合,每个属性都是一个名/值对,每个属性存放一个原始值、对象或函数”。

    • 属性有名字和值。

      • 属性名可以是包括空字符串在内的任意字符串,(+模糊记忆)但对象中不能存在两个同名的属性。
      • 属性值可以是任意类型的JS值(是原始值,也可以是引用值),或者(在ES5中)可以是一个getter或setter函数(或两者都有)。可以是任意类型的JS表达式,表达式的值就是这个属性的值。

    可以把对象看成是从字符串到值的映射。


    【11】对象的特点:

    1. 对象是JS中的一种基本数据类型。
    2. 对象是一种复合值:它将很多值(原始值或者其他对象)聚合在一起,可以通过对象属性名访问这些值。

    【12】数据类型是某种类型的数据,比如数组,字符串。

    数据结构:指的是数据内部的构成方式。


    【14】在ES中,不能访问对象的物理表示,只能访问对象的引用。

    JS中的引用始终指向最终的对象,而并非引用本身。(吃码小妖:就是不存在指针的指针。)

    变量名存放对象的地址。对变量的操作等于对该对象的操作。

    对象名是对对象的引用。

    每次创建对象,存在变量中的是该对象的引用,而不是对象本身。(指针的概念)

    我们通过引用而非值来操作对象。

    如果变量x是指向一个对象的指针,那么执行代码var y=x;变量y也是指向同一个对象的指针,而非这个对象的副本。

    通过变量y修改这个对象也会对变量x造成影响。

    例子:

    var obj = {};//空对象
    var ref = obj;//引用
    obj.name = "objectA";
    console.log(ref.name);//objectA//ref跟着添加了name属性
    obj = ["one", "two", "three"];//obj指向了另一个对象(数组对象)
    console.log(ref.name);//objectA//ref还指向原来的对象
    console.log(obj.length);//3
    console.log(ref.length);//undefined
    

    【15】对象是动态的——可以增加或删除属性。

    【16】除了字符串、数字、布尔值、null和undefined和Symbol之外,JS中的值都是对象。

    【17】对象最常见的用法是创建(create)、设置(set)、查找(query)、删除(delete)、检测(test)和枚举(enumerate)它的属性。

    【18】(+模糊记忆)在ES5之前,通过代码给对象创建的所有属性都是可写的、可枚举的和可配置的。在ES5中则可以对这些特性加以配置。


    【19】对象有两类属性:

    • 自有属性(own property)是直接在对象中定义的属性。
    • 继承属性(inherited property)是在对象的原型对象中定义的属性。

    【20】类,是创建对象的模板,一个类可以创建多个相同的对象;对象,是类的实例,是按照类的规则创建的。

    属性是一个变量,用来表示对象的特征,如颜色、大小、重量等;

    方法是一个函数,用来表示对象的操作,如奔跑、呼吸、跳跃等。

    对象的属性和方法统称为对象的成员。

    【21】类的继承

    一个类可以继承另一个类的特征,如同儿子继承父亲的DNA、性格和财产等,与现实生活中的继承类似。

    相关文章

      网友评论

          本文标题:【01】对象的基础信息

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