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