我在我的 Google Closure javascript 中创建了 goog.ui.Button 的子类。
/**
* @fileoverview This button makes a new widget.
* @author David Faux
*/
goog.provide('app.ui.NewWidgetButton');
goog.require('goog.ui.Button');
/**
* Button for creating a new widget.
* @constructor
* @param {goog.ui.ButtonRenderer=} opt_renderer Optional renderer used to
* render or decorate the button.
* @param {goog.dom.DomHelper=} opt_domHelper Optional DOM hepler, used for
* document interaction.
* @extends {goog.ui.Button}
*/
app.ui.NewWidgetButton = function(opt_renderer, opt_domHelper) {
goog.base(
this,
/** @type {goog.ui.ControlContent} */ 'New Widget',
opt_renderer,
opt_domHelper);
}
goog.inherits(app.ui.NewWidgetButton, goog.ui.Button);
但是,当我使用 实例化此按钮时var newButton = app.ui.NewWidgetButton();
,Chrome 控制台中出现错误:
`Uncaught TypeError: Object #<Object> has no method 'setContentInternal'`
我查了一下方法setContentInternal
,它似乎是类的方法goog.ui.Control
,它是 的超类goog.ui.Button
,所以我很困惑为什么这个方法是未定义的。