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

如果我改成var o={a:37,f:f(),g:g()},g是可以打印出来的,f却是undefined,为什么?

https://img1.sycdn.imooc.com//5c1bbaca00013d2f03790293.jpg问题如图所示

正在回答

4 回答

同学,您感觉哪里的声音差呢?.setAttribute("onclick","del(this);");

0 回复 有任何疑惑可以回复我~

apply 、 call 、bind 三者都是用来改变函数的this对象的指向的;
apply 、 call 、bind 三者第一个参数都是this要指向的对象,也就是想指定的上下文;
apply 、 call 、bind 三者都可以利用后续参数传参;
bind 是返回对应函数,便于稍后调用;apply 、call 则是立即调用 。

区别是,当你希望改变上下文环境之后并非立即执行,而是回调执行的时候,使用 bind() 方法。而 apply/call 则会立即执行函数。

0 回复 有任何疑惑可以回复我~

var o = {a: 37, f: f, g: g},对象里面设置值得时候函数不要加括号,

调用的时候o.f() //37        o.g() // 'test'

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

如果我改成var o={a:37,f:f(),g:g()},g是可以打印出来的,f却是undefined,为什么?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信