美文网首页
【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】对象的基础信息

    【01】对象的基础信息 【01】对象可以从一个称为原型的对象上继承属性和方法。 【02】对象用中括号读取属性,属性...

  • 面向对象基础信息

    一、类与实例 对象:是一个自包含的实体,用一组可识别的特性和行为来标识。 类:就是具有相同的属性和功能的对象的抽象...

  • Java 基础

    Java 基础01Java开发入门 Java 基础02Java编程基础 Java 基础03面向对象 Java 基础...

  • week2 总结 - web前端

    01.基础语法(对象) 1.什么是对象(Object) - 和Python中的对象一样,有对象属性和对象方法。 2...

  • 面向对象的基础day02

    #1.面向对象的相关概念 01 对象是什么? 什么都是对象,对象是具体的事物; 02 对象的描述信息(静态特征) ...

  • 15 初识面向对象[python基础]

    什么是面向对象? //任何事物都可以看作是对象 //15 初识面向对象[python基础]关注事物对象的信息,对一...

  • Vue 基础-02-重点

    Vue 基础-day02-重点 01-基础-系统指令-v-bind-绑定 class-对象语法 :class="{...

  • Java 工程师成神之路 | 2019正式版

    摘要:什么是面向对象 基础篇 01面向对象 → 什么是面向对象 面向对象、面向过程 面向对象的三大基本特征和五大基...

  • 01-面向对象基础

    类和对象 类:是对一群具有相同特征和行为的事物的一个统称,类是抽象的,是不能直接使用的。 特征被称为属性 行为被称...

  • 阿里P8资深架构师耗时一年整理19年Java工程师成神之路

    1、基础篇 01:面向对象 → 什么是面向对象 面向对象、面向过程 面向对象的三大基本特征和五大基本原则 → 平台...

网友评论

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

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