2016-3-24

作者: 流离之人 | 来源:发表于2016-03-25 09:50 被阅读7次

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

相关文章

网友评论

      本文标题:2016-3-24

      本文链接:https://www.haomeiwen.com/subject/vtarlttx.html