博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JS 对象
阅读量:6993 次
发布时间:2019-06-27

本文共 1414 字,大约阅读时间需要 4 分钟。

javascript 的简单数据类型包括数字、字符串、布尔值、null值和undefined值。其他所有的值都是对象。数字、字符串和布尔值“貌似”貌似对象,因为他们拥有放飞,但他们是不可变的。javascript中的对象是可变的键控集合,并且对象是无类型的。

javascript 包含一种原型链的特性,允许对象继承另一个对象的特性。正确地使用它能减少对象初始化时消耗的时间和内存。

对象字面量

对象字面量提供一种非常方便创建新对象值的表示法。

在对象字面量中,如果属性名是一个合法的 javascript 标识符且不是保留字,则并不强制要求用引号括住属性名

检索

1、 []中括住一个字符串表达式

2、 . 表示法

更新

对象里的值通过赋值语句来更新

引用

对象通过引用来传递,但他们永远不会被复制

原型

字面量创建对象的原型

每个对象都连接到一个原型对象,并且它可以从中继承属性。所有通过对象字面量创建的对象都连接到 Object.prototype,它是javascript 中的标配对象。

为创建的新对象指定它的原型

创建一个新对象时,我们可以给对象指定它的原型

if(typeof Object.create !== 'function') {      Object.create = function(o) {          var F = function(){};           F.prototype = 0;            return new F();      };}

原型连接

  • 原型连接在更新时是不起作用的。当我们队某个对象做出改变是,不会触及该对象的原型
  • 原型连接只有在检索值的时候才被用到(如果我们尝试去获取对象的某个属性值,但该对象没有此属性名,那么javascript会试着从原型对象中获取属性值。如果原型对象也没有改属性,那么再从它的原型中寻找,以此类推,直到过程最后达到终点Object.prototype。如果想要的属性完全不存在与原型链中,那么结果就是undefined值。这个过程称为委托
  • 原型关系是一种动态关系。如果我们添加一个新的属性到原型中,该属性会立即对所有基于该原型创建的对象可见

反射

当你想让对象在运行时动态获取自身信息时,我们关注的更多的是数据,而对象的一些更多的值为函数,有两种方式帮我们处理:

  • 让程序做检查并丢弃值为函数的属性(typeof 值为 function)
  • 使用hasOwnProperty 方法,如果对象拥有独有的属性,它将返回true。hasOwnProperty 方法不会检查原型链

枚举

for in 语句可用来边里一个对象中的所有属性名。该枚举过程将会列出所有的属性,包括函数和你可能不关心的原型中的属性,并且属性的顺序是不确定的,所以有必要过滤掉那些你不想要的值。

  • hasOwnProperty 和 typeof 来排除函数
  • for 循环,自定义自己想要的属性和顺序,然后通过for循环,不用担心发掘原型链中的属性,并且我们按照正确的顺序取得了他们的值

减少全局变量污染

javascript 可以很随意地定义全局变量来容纳你的应用的所有资源,但全局变量削弱了程序的灵活性,应该避免使用

减少全局变量污染的方法

  • 为你的应用只创建一个唯一的全局变量(与其他的应用程序、组件或类库之间发生冲突的可能性就会显著降低)
  • 使用闭包

转载地址:http://gudvl.baihongyu.com/

你可能感兴趣的文章
Hive DDL 内部表外部表 分区 分桶 行格式 存储文件格式 概述
查看>>
MySQL 压测工具 sysbench 安装及使用
查看>>
转:在win7系统下使用TortoiseGit(乌龟git)简单操作Git@OSC
查看>>
网络安全学习站点
查看>>
第一篇博文
查看>>
让 Markdown 中的代码可以实时运行
查看>>
spring和redis的整合
查看>>
Kubernetes为何如此炙手可热?
查看>>
详解:Git 常用基本命令使用方法一览
查看>>
Jose Mourinho: 任何成功都来自处心积虑
查看>>
Eclispe下集成JFinal中jetty包作为开发环境
查看>>
完全用Linux工作——看清华学子痛批Windows
查看>>
Spring Auto-Wiring Beans
查看>>
php不重新编译添加模块 php不重新编译添加模块
查看>>
jQuery过滤选择器:not()方法
查看>>
pietty自动登录
查看>>
输入n,求一个n×n矩阵,规定矩阵沿45度递增,形成zigzag数组
查看>>
FREEBSD上vsftp+MYSQL实现虚拟用户验证
查看>>
php.ini配置解释
查看>>
cordova与ios native code交互的原理
查看>>