获得'未定义'使用闭包工具继承时出现属性错误

Getting 'Undefined' property error, when inheriting using closure tools

本文关键字:错误 继承 属性 闭包 未定义 获得 工具      更新时间:2023-09-26

我正在尝试使用闭包工具实现一个自定义组件。但它总是给出关于"goog.ui"未定义的错误。这是我的文件:

HTML

<html>
  <head>
    <script src="closure-library/closure/goog/base.js"></script>
    <script src="hello.js"></script>
  </head>
  </body>
</html>

JS-

goog.require('goog.ui.Component');
var dummyComponent = function() {
};
goog.inherits(dummyComponent, goog.ui.Component);

这只是一个存根代码,我知道对goog.base的调用丢失了,但我更关心的是错误:

Uncaught TypeError: Cannot read property 'Component' of undefined

我已经有了goog.require(),我还应该做什么?

在摸索之后,我发现了一些对我有用的东西,我不得不在html文件中做一次goog.require(…)`。

更新的HTML文件

<html>
  <head>
    <script src="closure-library/closure/goog/base.js"></script>
    <script>
         goog.require('goog.ui.Component');
    </script>
    <script src="hello.js"></script>
  </head>
  </body>
</html>

您尚未将goog.require('goog.ui.Component')的结果设置为变量:

var goog = goog.require('goog.ui.Component');
var dummyComponent = function() {
};
goog.inherits(dummyComponent, goog);