猿问

js中函数通过call来调用,是否就无法拿到原函数的信息了?

比如下面的例子中,我在外部只能拿到obj,是否能通过obj来拿到a

<script>

"use strict";


var a=function(){

    console.log("a")

}


var b=function(){

    console.log("b")

}

b.prototype.a=a


var obj={}

var c=function(){

    b.call()

}


obj.c=c

obj.c()


</script>


慕标5832272
浏览 374回答 1
1回答

繁花不似锦

var x=function(){a.call()}obj.x=x;obj.x() //输出 "a"按题主的逻辑 应该就是这个样子然而,这跟原型链有半毛钱关系啊b.prototype.a=a 这是什么鬼你创建的obj是直接继承Object.prototype如果,你要obj从原型继承这个两个方法function xxx(){}xxx.prototype.a=function(){console.log("a");}xxx.prototype.b=function(){console.log("a");}var obj=new xxx();obj.a();obj.b();你要用call调用 也应该是xxx.prototype.b.call()或者obj.a.call()
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答