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

一个函数字面量基础问题!

一个函数字面量基础问题!

Cats萌萌 2019-03-13 17:13:45
var obj = {    f1: function() {        var p = new this.f2()        Object.assign(this, p)        console.log(1, this)    },    f2: function() {        console.log(2, this)        this.f3 = function() {            console.log(3, this)        }    }}(上面是示例代码,实际代码是下面小程序的)现在我在f2里面获取this是一个{imageLoaded: ƒ ()},为什么不是指向obj的this,我要怎么做才可以把f3添加到obj,又能在f2中有指向obj的this?Page({    f1: function() {        console.log(this) //{}                this.imageLoaded = function() {}    },    f2: function() {        const p = new this.f1()        Object.assign(this, p)    },})<image src="{{item}}" hidden bindload="imageLoaded"></image>
查看完整描述

2 回答

?
一只斗牛犬

TA贡献1784条经验 获得超2个赞

你想Page接收options做上下文 但是Page已经指定了上下文了。可不可以直接注册f3 来实现代码逻辑呢


查看完整回答
反对 回复 2019-03-30
?
慕尼黑的夜晚无繁华

TA贡献1864条经验 获得超6个赞

示例代码没问题。
实际代码里的this就只能看缘分了,你指定的是一个{}this,如果要和Page发生关系,那是Page具体实现的问题,一般来说,你上面f1f2的所有this都是不对的。

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

添加回答

举报

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