function Foo () {
// 构造属性
getName = function () {
console.log(1)
}
return this
}
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() // 3
构造属性和原型属性实例均可访问,构造函数自身无法访问