js作用域

一道常被人轻视的前端JS面试题

空扰寡人 提交于 2020-05-07 19:18:11
前言 年前刚刚离职了,分享下我曾经出过的一道面试题,此题是我出的一套前端面试题中的最后一题,用来考核面试者的JavaScript的综合能力,很可惜到目前为止的将近两年中,几乎没有人能够完全答对,并非多难只是因为大多面试者过于轻视他。 题目如下: JavaScript function Foo() { getName = function () { alert (1); }; return this; } Foo.getName = function () { alert (2);}; Foo.prototype.getName = function () { alert (3);}; var getName = function () { alert (4);}; function getName() { alert (5);} //请写出以下输出结果: Foo.getName(); getName(); Foo().getName(); getName(); new Foo.getName(); new Foo().getName(); new new Foo().getName(); 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 function Foo ( ) { getName = function ( ) { alert ( 1 )