我正在尝试覆盖 Blockly API 中的某些函数。我正在使用 react 并使用 react-blockly 包。我正在覆盖工作区类。我的代码看起来与官方仓库中的完全一样,我将 createVariable 更改为如下所示:
Blockly.Workspace.prototype.createVariable = function (
name,
opt_type,
opt_id,
opt_length
) {
return this.variableMap_.createVariable(name, opt_type, opt_id, opt_length);
};
如您所见,该函数正在使用 variableMap_ ,它在调用时被实例化Blockly.Workspace
:
Blockly.Workspace = function (opt_options) {
...
this.variableMap_ = new Blockly.VariableMap(this);
...
}
当我运行时,我的代码Blockly.Workspace
永远不会被调用并且variableMap_
是未定义的。
当我在官方仓库中搜索 Blockly.Workspace 的位置时,我无法找到它被调用的位置:
Workspace
扩展Workspace__Class
并且仅在压缩文件和workspace.js文件中提及。
所以我的问题是:什么时候被Blockly.Workspace
调用和this.variableMap_
实例化?