js之object


对象

ECMA-262 把对象(object)定义为“属性的无序集合,每个属性存放一个原始值、对象或函数”。严格来说,这意味着对象是无特定顺序的值的数组。

尽管 ECMAScript 如此定义对象,但它更通用的定义是基于代码的名词(人、地点或事物)的表示。

每个对象都由类定义,可以把类看做对象的配方。类不仅要定义对象的接口(interface)(开发者访问的属性和方法),还要定义对象的内部工作(使属性和方法发挥作用的代码)。编译器和解释程序都根据类的说明构建对象。

实例

程序使用类创建对象时,生成的对象叫作类的实例(instance)。对类生成的对象的个数的唯一限制来自于运行代码的机器的物理内存。每个实例的行为相同,但实例处理一组独立的数据。由类创建对象实例的过程叫做实例化(instantiation)。

在前面的章节我们提到过,ECMAScript 并没有正式的类。相反,ECMA-262 把对象定义描述为对象的配方。这是 ECMAScript 逻辑上的一种折中方案,因为对象定义实际上是对象自身。即使类并不真正存在,我们也把对象定义叫做类,因为大多数开发者对此术语更熟悉,而且从功能上说,两者是等价的。

面向对象语言的要求

一种面向对象语言需要向开发者提供四种基本能力:

  1. 封装 - 把相关的信息(无论数据或方法)存储在对象中的能力
  2. 聚集 - 把一个对象存储在另一个对象内的能力
  3. 继承 - 由另一个类(或多个类)得来类的属性和方法的能力
  4. 多态 - 编写能以多种方法运行的函数或方法的能力

ECMAScript 支持这些要求,因此可被是看做面向对象的。

对象的构成

在 ECMAScript 中,对象由特性(attribute)构成,特性可以是原始值,也可以是引用值。如果特性存放的是函数,它将被看作对象的方法(method),否则该特性被看作对象的属性(property)。

转载于:https://www.cnblogs.com/zero-vic/p/9978568.html

js 之 object相关推荐

  1. js对象(Object)和字符串(String)互转 - 代码篇

    文章目录 js对象(Object)和字符串(String):相互转化 1. 利用原生JSON对象,将对象转为字符串 截图如下: 2. 从JSON字符串转为对象 相关文章:[localstorage本地 ...

  2. JS与Object-C交互补充

    2019独角兽企业重金招聘Python工程师标准>>> 有一个场景,用户点击Web页面,产生JS交互时,如何根据JS事件,App做出响应. 我们可以自己做一个简单的js交互,实现基于 ...

  3. 从零开始学前端 - 16. JS对象Object介绍及常用方法

    作者: 她不美却常驻我心 博客地址: https://blog.csdn.net/qq_39506551 微信公众号:老王的前端分享 每篇文章纯属个人经验观点,如有错误疏漏欢迎指正.转载请附带作者信息 ...

  4. JS 去除Object中指定的key

    JS 去除Object中指定的key const omit = (obj, arr) =>Object.keys(obj).filter((k) => !arr.includes(k)). ...

  5. JS中Object的方法汇总,包括assign、create、prototype等等

    JavaScript Object JS的Object到底是啥东西呢?它有啥东西呢? 我们简单知道的,就是new一个Object实例对象,那这个实例对象又何Object又有什么关系呢? 先打印一下看看 ...

  6. js判断object对象中是否存在某个key【Mirth Connect】

    @js判断object对象中是否存在某个key[Mirth Connect] 背景 在配置Mirth Connect(ETL工具)时,由于场景需求,根据输出的JSON中的某个key是否存在value来 ...

  7. js对比 object 代码

    js对比 object 代码,有一个递归的思路 function isObjectValueEqual(a, b) {if((a == null && b != null) || (b ...

  8. 微信小程序报错:WAServiceMainContext.js:2 Object(env: Windows,mp,1.05.2203070; lib: 2.14.1)

    跳转页面时报错:WAServiceMainContext.js:2 Object(env: Windows,mp,1.05.2203070; lib: 2.14.1) 刚开始找了好多解决方法都没有解决 ...

  9. js中Object类型和Array类型的变量被赋值(复制)给其他变量后,修改被赋值(复制)的新变量的值,会影响原始变量的值,这是为什么呢?

    JavaScript中的Object和Array都是指针变量类型,例如我声明 let obj={a:1};let arr=[1,2,3]; 其中的obj和arr存放的仅仅是对应的对象和数组内容所存放的 ...

最新文章

  1. python pil_使用Python的PIL模块来进行图片对比
  2. 历史回顾,各种编程工具的应用与我的发展历程之二(VB)
  3. matlab dsp工具箱_GPU中的并行运算,加速你的Matlab程序
  4. JZOJ 5372. 【NOIP2017提高A组模拟9.17】猫
  5. vo生成MySQL表_跟我学微服务统一开发平台-代码生成器
  6. 【并查集】团伙(luogu 1892)
  7. java8 stream to map_Java 8 Stream Api 中的 map和 flatMap 操作
  8. 安卓逆向_15( 一 ) --- JNI 和 NDK
  9. UI设计中的黄金分割率,实用案例适合临摹学习
  10. Codeforces Round #465 (Div. 2) F. Fafa and Array
  11. js深拷贝和浅拷贝对数组的影响_浅拷贝与深拷贝(JavaScript)
  12. SQL Server 数据库之连接查询
  13. ERD-ONLINE 免费在线数据库建模工具
  14. 安装nodejs遇到的坑
  15. 中国“脑计划”研究正在悄然布局
  16. Java NIO笔记05
  17. VMWare16上安装CentOS 7镜像
  18. BUUCTF Cipher writeup
  19. 金仓数据库字段_金仓数据库认证工程师(KCE)考试试题_含答案_
  20. SpringMVC配置中遇到的惊(keng)喜

热门文章

  1. Mac安装双系统-win10
  2. 《数据结构与抽象:Java语言描述(原书第4版)》一JI2.3 抛出异常
  3. eclipse 向HDFS中创建文件夹报错 permission denied
  4. Eclipse MAT插件下载地址
  5. win 开机 Microsoft corparation 滚动栏
  6. _INTSIZEOF(n)解析
  7. ASP.NET C# 生成静态页面简单方法
  8. Application Center Test知识点滴积累
  9. php学数据结构,PHP 程序员学数据结构与算法之《栈》
  10. vivado----fpga硬件调试 (二)----mark_debug