2016-3-24


ES5中的属性类型

  1. named data property 数据属性
  • var obj = { name: 'mm'} name即为数据属性
  • Object.getOwnPropertyDescriptor(obj,'name');
  1. named Accessor Property 访问属性
  • var obj = {
    get name () { return _name;}
    set nmae (val) { _name=val}
    }
  • 可以生成一个私有属性,当进行设置或者获取时,可以通过get,set控制。
  • 当调试复杂代码时,通过访问属性,可以查看某个值得赋值过程

ES5新api

  1. *Object.getPrototypeOf(obj):获取隐式原型
  2. *Object.defineProperty(obj,'age',{}):
  • 定义属性,更新属性
  • 可以设置不可删除的常量
  1. *Object.create(o[,Properties]);
  2. Object.preventExtensions(obj):是否对象可以扩展
  3. Object.freeze(o):最强制的不可修改
  4. *Object.keys(o): 将o的所有keys遍历成一个数组,不会沿着原型链找到所有的key。而for in 方法会把原型链上的属性遍历到
  • 在 for in时,要通过hasOwnProporty来判断是否为当前对象私有属性

严格模式

  1. 使用: "use strict"
  2. 通过 var fun = new Function()形成的函数代码,是不受外面的严格模式影响的
  3. 严格模式下,argumenst的实参和形参不共享值
  4. eval()下的变量不会再放在父级上

Promise

  1. promise.prototype.then([fn1[,fn2]])
  • 都是可选的,第一个为成功执行的回调函数,第二个是失败执行的回调函数
  1. promise链
  • promise.then返回的是一个新的promise对象
  • onFullfilled,onRejected返回值类型
    • 返回非thenable(非pormise对象)
      p1的resolve和reject都返回到p2的resolve
    • 返回thenable(promise对象)
      p1,p2这些promise对象绑定一起,进行同一处理
    • 异常丢失
      最好在最后加个catch方法,捕获异常
  • Promise.all([p1,p2]):都成功或失败

reference

  1. 只有函数才有激活对象 (AO)
  2. reference(参考引用):是用来解释this,typeof,delete相关的行为
  3. 图解
reference.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 你不知道JS:异步 第三章:Promises 在第二章,我们指出了采用回调来表达异步和管理并发时的两种主要不足:缺...
    purple_force阅读 2,126评论 0 4
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,806评论 18 399
  • 原文: https://github.com/ecomfe/spec/blob/master/javascript...
    zock阅读 3,414评论 2 36
  • 前几天,表哥谈了六年的女朋友提出分手,明明都已经订婚了,最后还是和他说出了分手,原因就是没有婚房,女孩的父母不同意...
    非寻阅读 836评论 6 3
  • 下午去公司,领猪肉和大米,猪肉很肥 看了电影 个人觉得一般
    青玄子阅读 244评论 0 0