美文网首页
JavaScript with 初探

JavaScript with 初探

作者: ShoneSingLone | 来源:发表于2020-09-23 22:27 被阅读0次

    Vue 编译成render函数之后,会用with语法修改当前上下文。传入的是vm,当前实例。拥有实例方法与属性。故而在template中,可以使用this.某data或method或computed之类,也可以省略this。

    with

    (()=>{
        function f(vm) {
            with (vm) {
                console.log("with this.a", this.a);        
                console.log("with vm.a", vm.a)
                console.log("with a", a);
                console.log("with vm.b", vm.b)
                console.log("with b", b)
            }
        }
    
        f.call({
            a: 'callThis'
        }, {
            a: 'fnArgs'
        })
    }
    )()
    
    ....
    with this.a callThis//通过call改变this指向
    with vm.a fnArgs
    with a fnArgs//with 改变上下文 a 没有声明,会从vm上查找
    with vm.b undefined 
    Uncaught ReferenceError: b is not defined//未声明
    

    相关文章

      网友评论

          本文标题:JavaScript with 初探

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