一道基础习题,对于基础不扎实的同学(包括我)来说,完全不知道正确的运行结果以及为什么是这样执行的。接下来上代码与运行结果:
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();
getName();
Foo().getName();
getName();
new Foo.getName();
new Foo().getName();
运行结果:2,4,1,1,2,3
解析:
这段代码主要涉及以下 JavaScript 的知识点:
对象和原型:在该代码中,
Foo
是一个构造函数,其通过Foo.getName()
和Foo.prototype.getName(