1

我正在尝试覆盖 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 的位置时,我无法找到它被调用的位置:Blockly.Workspace

Workspace扩展Workspace__Class并且仅在压缩文件和workspace.js文件中提及。

所以我的问题是:什么时候被Blockly.Workspace调用和this.variableMap_实例化?

4

0 回答 0