美文网首页
javascript-basis-important

javascript-basis-important

作者: 我是苏大大 | 来源:发表于2020-04-05 23:49 被阅读0次

    Mountain One --- 作用域及闭包

    一、预解释(变量提升)

    var function 会进行浏览器提前预解释,
    函数声明与var 声明冲突(var并且赋值)则使用var 的值,否则使用函数值。
    当声明冲突第二次(多次)不重复声明变量,但是会进行重新赋值

    二、作用域链

    函数定义在哪就会在按照当前作于域往上查找。(无论在哪执行)

    三、闭包

    只要存在引用(堆~地址) 则不销毁存在闭包内的变量值。

    Mountain Two --- 原型与原型链

    1.每一个函数数据类型(普通函数、类)都有一个天生自带的属性:prototype (原型) ,并且这个属性是一个对象数据类型的值;
    2并且在prototype上浏览器天生给它加了一个属性constructor(构造函数),属性值是当前函数(类)本身;
    3. 每一个对象数据类型(函数、普通的对象、实例、prototype....) 也天生(浏览器)自带一个属性:"__proto__",属性值是当前实例所属类的原型([所属类].prototype)

    Mountain Three --- 异步和单线程

    --empty

    Postil:

    ~ children.prototype = new Parents; (quote & private and publice)
    ~ Parents.call(this) ; ( clone & private )
    ~冒充继承 (children in new Parents ~this[key] =?)
    ~混合继承 call + ( new Parents && ?:= Parents.prototype )
    ? why not use " Parents.prototype" ?
    quote ~context
    ~寄生组合继承 call + Object.create(Parents.prototype)
    clone Parents.prototype .

    var arr = new Array(); 实例创建的方式---->构造函数执行方式

    for ~in : 可遍历私有属性(可枚举)和在原型上(prototype)自定义的属性(不可枚举),其它不可枚举都无法遍历。

    Object.create() ~ 把一个对象的原型( prototype ) 当作返回值的原型链(proto)
    function Obc(o){
    function Fn(){}
    Fn.prototype = o;
    return new Fn;
    }

    call fn1.call.call(fn2) fn1.call = 'sdd‘ 替代法解答. call源码内部 ( 会自动 this 执行)

    reflow 重排 、重绘 存在Node创建文档碎片.一次性添加

    相关文章

      网友评论

          本文标题:javascript-basis-important

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