var obj = {
name:'ian',
getName(){
console.log(`inside:${this.name}`)
}
}
obj.getName()
obj.getName.call({name:'oliver'})
var fn = obj.getName.call({name:'sullivan'})
console.log是ian olive和sullivan,但是我不明白,为什么?我没有安慰fn,为什么它可以输出' sullivan'?如果我这样做:
var obj = {
name:'ian',
getName(){
console.log(`inside:${this.name}`)
}
}
obj.getName()
obj.getName.call({name:'oliver'})
var fn = obj.getName.call({name:'sullivan'})
console.log(fn)
它将是控制台ian oliver sullivan和[ undefined ] 为什么?需要帮助:)请
答案 0 :(得分:1)
第一点,是为什么要记录?是因为你在getName函数中做了一个console.log。
第二点为什么它返回undefined。是因为你的函数没有返回值。也许您尝试执行以下操作:
var obj = {
name:'ian',
getName(){
return this.name;
}
}
console.log(obj.getName());
console.log(obj.getName.call({name:'oliver'}));
var fn = obj.getName.call({name:'sullivan'})
console.log(fn)
注意:如果在控制台中运行此代码。你最后得到一个未定义的,因为我没有给控制台一个变量或值。
答案 1 :(得分:0)
console.log是ian olive和sullivan,但是我不明白,为什么?我没有安慰fn,为什么它可以输出' sullivan'?如果我这样做:
函数call
调用执行getName
console.log
getName(){
console.log(`inside:${this.name}`)
} ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
如果我这样做:
函数getName()
不会返回任何值,因此默认情况下会返回undefined
。