闭包编译器错误:JSC_NOT_A_CONSTRUCTOR

qwe*_*ymk 2 javascript optimization google-closure-compiler

我正在玩闭包编译器并输入以下代码:

var obj = (function() {
  function H(a) {
    this.a = a
  }
  var h = new H(1);
  h.b=1
  return h
})();
Run Code Online (Sandbox Code Playgroud)

我想看看它是否会将其转换为:

var obj = (function() {
  function H(a) {
    this.a = a;
    this.b = 1
  }
  var h = new H(1);
  return h;
})();
Run Code Online (Sandbox Code Playgroud)

但相反,我得到了这个错误
JSC_NOT_A_CONSTRUCTOR: cannot instantiate non-constructor at line 6 character 8 var h = new H(1);

我究竟做错了什么?

T.J*_*der 5

你必须通过以下方式告诉CC该函数是一个构造函数@constructor:

/**
 * Makes an H.
 * @constructor
 */
function H() {
  ...
}
Run Code Online (Sandbox Code Playgroud)