阿里面试题
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();
new new Foo().getName();
版本2
function Foo() {
this.getName = function () {
console.log(3);
return {
getName: getName //这个就是第六问中涉及的构造函数的返回值问题
}
}; //这个就是第六问中涉及到的,JS构造函数公有方法和原型链方法的优先级
getName = function () {
console.log(1);
};
return this
}
Foo.getName = function () {
console.log(2);
};
Foo.prototype.getName = function () {
console.log(6);
};
var getName = function () {
console.log(4);
};
function getName() {
console.log(5);
}
//答案:
Foo.getName();
getName();// 4
console.log(Foo())
Foo().getName();
getName();
new Foo.getName();
new Foo().getName();
console.log((new Foo()).getName)
//多了一问
new Foo().getName().getName();
new new Foo().getName();
- .的优先级是18,new Foo优先级是17,new Foo()优先级也是18,函数调用是17
网友评论