两次打印的this值为什么不同

var VElement=function(tagName,props,children){

        this.tagName=tagName;

        this.props=props||{};

        this.children=children||{};

        this.key=props?props.key:void 666;

        var count=0;

        console.log(this);

        $.each(this.children,function(i,child){

            console.log(this);

        });

        this.count=count;

    }


    var vdom=VElement('div',{'id':'container'},['最外层']);


慕后森
浏览 494回答 1
1回答

茅侃侃

首先你要明白this是谁调用它它就指向谁。在循环外面的那个console的this因为是window调用了VElement这个函数,所以this指向window。在循环里面$.each对this做了修改变成了this.children,所以循环里面的console的this是指向this.children即传进来的['最外层']
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript