收藏
回答

开发文档audio例程里this的指向问题?

在开发工具搜索文档中搜索audio并将例程导入开发工具运行测试。如下图

导入后发现实际代码和下方示例并不相同,导入的代码里并没用到wx.createAudioContext()来生成实例。我稍微修改了下其中audio的 bindTimeUpdated方法,在data中引入了一个变量ct用来测试当前时间。

  audioTimeUpdated: function (e) {
    this.duration = e.detail.duration;
    this.setData({ct:e.detail.currentTime});
    console.log('update',this.data.ct);
  }

在console里调用this.data.ct才能正常获取ct的值,因此是不是此时this是指向page的呢?如果是这样,那为什么this.duration又好像是指向了audio的某个对象(虽然代码里没有生成audio实例的过程)?求各位大大给解释下

回答关注问题邀请回答
收藏

1 个回答

  • Mr.Zhao
    Mr.Zhao
    2020-02-14

    这只是一种写法而已,你可以打印下this ,找找duration绑定到哪了。别被这些组件误导了,跟audio没关系,你可以新建一个代码片段试试,写个Hello World看看

    2020-02-14
    有用
    回复 2
    • Take a step further
      Take a step further
      2020-02-14
      实际导入的代码和你框的其实不一样的哦,不过你提醒了我,我刚看了下this里的内容,好像既有audio得属性也有page的属性,是怎么合在一起了呢?
      2020-02-14
      回复
    • Mr.Zhao
      Mr.Zhao
      2020-02-14回复Take a step further
      就是简单的给对象添加属性
      2020-02-14
      回复
登录 后发表内容
问题标签