给出打印出的值【JavaScript】

给出下列代码打印出的值:
牛客网
结果:
结果
今天遇到这题感觉挺巧妙的,对于这道题的答案,我刚开始纠结的是为什么第二行输出的是Tom而不是Jay,后来看了评论区一个大佬的解答才知道:
使用new操作符时,构造函数内的this就指向相应的实例化对象;
未使用new操作符时,为普通函数调用,全局函数内的this指向window。
所以语句 var a = Person(‘Tom’) 将全局范围内的name变量改成了 Tom,故第二行输出为Tom。同时Person(“Tom”) 相当于只是执行Person函数,里面没有返回值,所以console.log(a)输出undefined。

猜你喜欢

转载自blog.csdn.net/weixin_42345596/article/details/107590786