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