当前位置: 首页 > news >正文

div css网站重构第一版视频教程女教师遭网课入侵视频大全

div css网站重构第一版视频教程,女教师遭网课入侵视频大全,商城网站jq楼层响应,沈阳网站开发培训价格这篇博文的主要目的是为了填坑,很久之前我发表了一篇名为关于JavaScript对象中的一切(一) — 对象属性的文章,想要谈一谈JavaScript对象,可那时只是贴了一张关于这个主题的思维导图,今天我会针对这一主题进…

这篇博文的主要目的是为了填坑,很久之前我发表了一篇名为关于JavaScript对象中的一切(一) — 对象属性的文章,想要谈一谈JavaScript对象,可那时只是贴了一张关于这个主题的思维导图,今天我会针对这一主题进行展开,将JavaScript对象一些平常不太常用的知识系统的整理出来,方便阅读者的记忆与理解。在看完本篇文章后,你大可跳转回这篇博文,并保存思维导图,以加强记忆。

对于对象的一般认识

在开始正题之前,让我们先凭直觉回忆一下我们对JavaScript对象的一般认识:

  1. 对象是一个引用类型值;
  2. 创建对象的方式有两种形式:“字面量形式”与“构造函数形式”;
  3. 对象的属性可以随时修改,且一旦改动,所有引用对象的地方,其属性值均会被改变(这也是引用类型的特点);
  4. 对象可以通过原型链实现继承;

以上这些应该是JavaScript开发者对“对象”这一概念最基本的认识。但实际上,JavaScript给予了开发者以更细致颗粒度操作/设置对象及其属性的能力,这些能力是什么?如何运用?这就是接下来我们要谈到的话题。


对象与属性

让我们保持耐心,再梳理一下对象与属性的关系:对象是属性的集合,当对象的属性是函数时,我们将其称之为“方法”

我们不妨建立这样的心智模型:对象是一只蓝色的(这里的颜色特别重要,因为实际上,变量本身也是一只大章鱼,但她的身体却是红色的?)大章鱼,章鱼的每一只触手都握着一个属性的内存地址卡片,当要读取对象中的属性时,章鱼的触手会随着卡片上的地址拿到相应的数据值,并返还给用户(就是你)。

893617-20171030140313855-1311098958.jpg

接下来,让我们从对象与属性两个角度切入,谈谈一些我们可能平常不太接触到的知识。


对象的内部方法与特征属性

让我们先定义这两个名词:

  • 内部方法是指:JavaScript于对象内部定义的,用户不可访问/修改的方法;
  • 特征属性是指:用来描述对象/属性一些特性(如是否可配置?是否可迭代)的属性;

简单来说,JavaScript中对象和属性都“藏”有一些我们不太常用的属性和方法,我们的目的就是揪出它们,分析它们的用法和意义,然后对JavaScript对象有一个完整清晰的认识。

让我们先从JavaScript对象的内部方法说起:

JavaScript对象有以下三个内部方法:

  1. [[Put]]:用来创建对象属性,当新建对象属性时被调用,就像命令蓝色章鱼长出一只触角,握住一张内存地址卡片;
  2. [[Set]]:用来修改对象属性的值,当修改对象属性时被调用,可以想象为命令蓝色章鱼的某个触角放下已有的内存地址卡片,改换另一张;
  3. [[Delete]]:用来删除对象属性的值,当使用delete关键字删除对象属性时被调用,可以想象为砍掉蓝色章鱼的一只触角(别担心,蓝色章鱼并不在意);

讲到这里我们可以很好的说明当设定某对象属性值为null时会发生什么了,那只蓝色章鱼的触角还在,只是拿了一张空白卡片!

let obj1 = {x: null,
}
console.log(obj1.x) // nulllet obj2 = {y: null,
}
delete obj2.y
console.log(obj.y) // undefined(当访问对象不存在的属性时,一律得到undefined值)

接着我们来谈谈对象的特征属性

很遗憾对象的特征属性并不如属性那么多,我们这里先介绍一个,名为:[[Extensible]],它的值是一个布尔值,用来表示对象本身是否可以被修改,简单来说,便是是否可以添加属性(实际上,还有一个内部的[[proto]]特征属性)。

为了配置这个属性,JavaScript给了我们一个专门的方法:Object.preventExtensions(),同时,为了检测一个对象是否是可扩展的,JavaScript还给我们提供了Object.isExtensible()方法,让我们看看它们的用法:

let obj = {x: 1,
}console. log(Object.isExtensible(obj))   // trueObject.preventExtensions(obj)console.log(Object.isExtensible(obj))   // falseobj.y = 2console.log('y' in obj)   //false

可见,通过这个特征属性,我们可以创建一个比较保守的不可扩展对象,当我们了解属性的特征属性后,在本文最后你会看到,我们最终是如何制造出一个封闭性极强的对象的(不仅不可扩展,连属性也不能被改变)。

让我们小结一下:JavaScript对象有三个内部方法和一个特征属性,他们分别是:

  1. 内置方法:[[Put]][[Set]][[Delete]]
  2. 特征属性:[[Extensible]]

在下一篇文章中,我们会一起梳理对象属性的一些不为人知的小秘密,休息一下,然后我们继续。

o_cat.gif

转载于:https://www.cnblogs.com/libinfs/p/7754405.html

http://www.lbrq.cn/news/2557639.html

相关文章:

  • 哪个网站上门做护肤app优化推广
  • 湛江网站建设制作价格百度登录账号首页
  • app官网网站建设成都seo优化排名公司
  • 开贴纸网站要怎么做的痘痘怎么去除效果好
  • 建设局优化 保证排名
  • 微信网站建站平台中国纪检监察报
  • 电子商务网站建设与管理 教案百度搜索推广收费标准
  • 网站备案 幕布宁波seo公司网站推广
  • 四平网站制作宣传推广方案怎么写
  • 常德建设网站公司写软文的app
  • 惠州市做网站的公司软文平台
  • 做物流的网站有哪些内容seo优化服务公司
  • 贵州润铁祥建设工程有限公司网站深圳网络推广服务公司
  • web网站建设报价加强网络暴力治理
  • 营销型网站建设哪好搜素引擎优化
  • wordpress 数据库seo网络营销推广公司深圳
  • 微信微信seo排名点击
  • 恩施网站建设百度seo详解
  • 课程培训网站建设外贸公司一般怎么找客户
  • 徐州网站建设制作公司海外市场推广方案
  • 北京市规划网站免费b站推广网站详情
  • 山东网站营销推广费用百度推广没有一点效果
  • 太原站还建综合楼2024年新冠疫情最新消息
  • 织梦cms做视频网站全网品牌推广公司
  • 洛阳网站设计哪家专业夫唯seo视频教程
  • 微信微网站建设平台网站可以自己做吗
  • 备案 网站软文范例大全200字
  • 青岛网站制作企业拼多多关键词优化步骤
  • 网站安全制度体系的建设情况成人职业培训机构
  • 建设外卖网站规划书百度地图导航网页版
  • 宝塔服务器挂载数据盘
  • 函数 dirfd 详解
  • Sklearn 机器学习 文本数据 TF-IDF实现文本向量化
  • OSPF笔记整理
  • 新手docker安装踩坑记录
  • (27)运动目标检测之对二维点集进行卡尔曼滤波