类中,static方法中的this指向类本身

类中,static方法中的this指向类本身

theme.js

class Theme {
  themes = [] //这个themes属于对象
  static async getThemes(){
    const themes = [1,2,3]
    this.themes = themes //this指向类,this.themes不是类中第一行定义的themes,等于在类中又新定义一个静态属性(static themes = [1,2,3])
    console.log(Theme.themes) //[1,2,3]
    console.log(this.themes) //[1,2,3]
  }
  async getHomeLocationA(){
    console.log(this.themes)  //this指向对象,也就是类中第一行定义的themes, 输出[]
  }
}
export {
  Theme
}

home.js

import {Theme} from '../../model/theme.js'

page({
    onLoad: function (options) {
       this.initAllData()
    },

    async initAllData(){
    const theme = new Theme()
    Theme.getThemes() //其实只是在Themes类中新定义了一个静态属性(static themes = [1,2,3]),并没有改变类中第一行定义的themes = []的值
    theme.getHomeLocationA() //输出[]
    }, 
})
原文地址:https://www.cnblogs.com/qq254980080/p/13164501.html