为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕标5832272 2018-12-19 18:18:50
比如下面的例子中,我在外部只能拿到obj,是否能通过obj来拿到a<script>"use strict";var a=function(){    console.log("a")}var b=function(){    console.log("b")}b.prototype.a=avar obj={}var c=function(){    b.call()}obj.c=cobj.c()</script>
查看完整描述

1 回答

?
繁花不似锦

TA贡献1851条经验 获得超4个赞

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()


查看完整回答
反对 回复 2019-01-03
  • 1 回答
  • 0 关注
  • 373 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信