function Person(){
getAge = function(){
console.log(10);
}
return this;
}
Person.getAge = function(){
console.log(20);
}
Person.prototype.getAge = function(){
console.log(30);
}
var getAge = function(){
console.log(40);
}
function getAge(){
console.log(50);
}
Person.getAge(); // 20 Person的静态方法
getAge(); // 40 函数的预处理 函数表达式 覆盖了 函数声明
Person().getAge();
getAge();
new Person.getAge();
new Person().getAge();
以下是不太懂的地方,不知道自己的理解是否正确。
Person().getAge(); // 10 普通的函数调用? getAge(); // 不懂为什么输出10 new Person.getAge(); // 也是Person的静态方法调用? new Person().getAge(); // 30 // new Person()返回一个Person实例, 沿着原型链寻找, 打印30? // Person里本身就有getAge()方法,为什么还会去原型链上寻找?
守着星空守着你