js 基础

122 阅读1分钟

this指向

        function aa() {
        }
        aa.prototype.ff = "ff";
        // console.log(aa.prototype);
        aa.dd = "dd";
        aa.prototype.getName = function (a, b) {
            // console.log(this);
            this.ee = "ee";
            // aa.prototype.ee = "ee";
            console.log(3);
            return "getName"
        };
        aa.prototype.constructor = aa;

        var foo = new aa();
        console.log(foo.dd); // --> undefined 是因为dd没有在aa的原型链上,所以在new以后没有办法添加到new生成的方法上
        console.log(foo.ee); // -->undefined 是因为此处并没有执行getName,this.ee并没有加到aa的原型上
        console.log(foo.getName());// -->getName 
        console.log(foo.ee); // -->ee 经过上面getName执行,在执行的过程中,ee添加到了aa的原型链上。