2、一道函数考察基本功

js

// 知识点:函数和类、原型链、运算符优先级、作用域、变量提升
function Foo() {
  getName = function() { console.log(1) } // 替换下面全局的getName
  return this // window对象
}
Foo.getName = function () { console.log(2) }
Foo.prototype.getName = function() { console.log(3) }
var getName = function() { console.log(4) }
function getName() { console.log(5) }

Foo.getName() // 2
getName()  // 4
Foo().getName()  // 1
getName() // 1

new Foo.getName() // 2  new function () { console.log(2) }
new Foo().getName() // 3
new new Foo().getName() // 3  new Foo.getName()
// 参考
// 运算符优先级:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/Operator_Precedence
原文地址:https://www.cnblogs.com/zouxinping/p/10320651.html