TypeError: Cannot read property ‘init_members’ of undefined
- 问题描述
在main.js
中调用resource_loader.js
中的加载方法,传入main.js
中的方法名init
,结果报错。
let instance
export class ResourceLoader {
// 传参
onload(callback) {
this.load_imgs_slot(callback)
}
static inst() {
if (!instance) {
instance = new ResourceLoader()
}
return instance
}
// 传入参数为回调函数
load_imgs_slot(callback) {
// content
}
}
import { ResourceLoader } from "./base/resource_loader"
export class Main {
constructor() {
console.log('resolution:', window.innerWidth + 'x' + window.innerHeight)
// 这行代码出错
ResourceLoader.inst().onload(this.init)
}
init() {
this.init_members()
}
init_members() {
// content
}
}
- 原因
回调函数中未能找到this
指针。
- 解决方法
修改回调函数传参的调用方式为:
ResourceLoader.inst().onload(() => this.init())