遇到不懂的题目
来源:2-8 用两个栈实现一个队列
伊黛姆
2022-03-10
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()
双越老师 , Foo().getName() 这里的输出以及后面用 new 创建实例的输出我不怎么懂,希望老师可以说详细点 Foo() 的this是 window , 但是里面的 getName 我就呆了
4回答
-
双越
2022-03-11
new 的三种情况,你稍微动手一分析就明白了,光用眼睛是不行。
例如第一个,你把代码改一下
const a = new Foo.getName() console.log(a)
打印 a 一看,就知道什么意思了。
01 -
双越
2022-03-11
第一,Foo().getName 其实就相当于 (new Foo()).getName 。因为 Foo 函数里有一个 return this
第二,下面有三个 new ,你是哪一个不懂?
另外,this 的值,不同的执行情况,值不一样。
如果再有问题,可以把无关代码全部删掉,只贴问题相关代码。这样好解答。
00 -
双越
2022-03-11
你新提的题目,倒是有照片,但是没描述。导致我俩题目对比这看。
干脆我把你照片贴过来吧
012022-03-11 -
双越
2022-03-10
把代码格式化高亮一下吧
012022-03-10
相似问题