资讯专栏INFORMATION COLUMN

JS 对象

LucasTwilight / 1546人阅读

摘要:的简单数据类型包括数字字符串布尔值值和值。数字字符串和布尔值貌似貌似对象,因为他们拥有放飞,但他们是不可变的。对象字面量对象字面量提供一种非常方便创建新对象值的表示法。所有通过对象字面量创建的对象都连接到它是中的标配对象。

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 可以很随意地定义全局变量来容纳你的应用的所有资源,但全局变量削弱了程序的灵活性,应该避免使用
减少全局变量污染的方法

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

使用闭包

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/95155.html

相关文章

  • JS中数据类型、内置对象、包装类型对象、typeof关系

    摘要:平时在复习基础知识时,经常会遇到数据类型基础数据类型内置对象包装类型对象,检测数据类型时,用到的值,感觉都差不多,但是又有差异。值与数据类型关系对比下图,即可知值相较于基础数据类型少多 平时在复习JS基础知识时,经常会遇到JS数据类型、基础数据类型、内置对象、包装类型对象,检测数据类型时,用到的typeof值,感觉都差不多,但是又有差异。今天特地整理下,方便理解。 JS数据类型 基础数...

    OldPanda 评论0 收藏0
  • 精读《JS 引擎基础之 Shapes and Inline Caches》

    摘要:概述的解释器优化器代码可能在字节码或者优化后的机器码状态下执行,而生成字节码速度很快,而生成机器码就要慢一些了。比如有一个函数,从获取值引擎生成的字节码结构是这样的指令是获取参数指向的对象,并存储在,第二步则返回。 1 引言 本期精读的文章是:JS 引擎基础之 Shapes and Inline Caches 一起了解下 JS 引擎是如何运作的吧! JS 的运作机制可以分为 AST 分...

    Tecode 评论0 收藏0
  • jQuery Deferred对象

    摘要:给普通的操作指定回调函数对象的最大优点,就是它把这一套回调函数接口,从操作扩展到了所有操作。方法用于指定对象状态为已失败时的回调函数。执行完毕执行成功执行失败接收一个或多个对象作为参数,为其指定回调函数。 什么是deferred对象 开发网站的过程中,我们经常遇到某些耗时很长的javascript操作。其中,既有异步的操作(比如ajax读取服务器数据),也有同步的操作(比如遍历一个大型...

    baoxl 评论0 收藏0
  • [译]执行上下文、作用域链和JS内部机制

    摘要:执行上下文作用域链和内部机制一执行上下文执行上下文是代码的执行环境,它包括的值变量对象和函数。创建作用域链一旦可变对象创建完,引擎就开始初始化作用域链。 执行上下文、作用域链和JS内部机制(Execution context, Scope chain and JavaScript internals) 一、执行上下文 执行上下文(Execution context EC)是js代码的执...

    caozhijian 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<