函数中的this关键字指代调用了函数的对象,如果不通过某个对象调用函数,那么this指向全局对象。

new关键字和this关键字密切相关。new关键字创建一个空对象,然后使用指向这个对象的this调用函数,函数不会创建对象,只会修改this指向的对象,new创建的this对象会返回给函数中的this,而被new调用的函数称为构造函数

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。
function makePerson(first, last) {
    return {
        first: first,
        last: last,
        fullName: function() {
            return this.first + ' ' + this.last;
        },
        fullNameReversed: function() {
            return this.last + ', ' + this.first;
        }
    }
}
s = makePerson("Simon", "Willison");
s.fullName(); // Simon Willison
s.fullNameReversed(); // Willison, Simon

s = makePerson("Simon", "Willison");
var fullName = s.fullName;
fullName(); // undefined undefined,this指向全局对象,全局对象中没有定义first和last所以为undefined

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄