1

实际错误代码

JSC_INEXISTENT_PROPERTY

概括

对于下面列出和评论的代码,我收到此错误。

我是这样打电话的。 o_p.page保存用户输入,其中一个属性确实是tag

Mo.AppBAdder.image_element = vDomBMAdd(o_p.page);

o_p.page 通过调用保存用户输入的对象来填充,如下所示:

o_p.page = text_object.getArray();

有没有办法让 Google Closure 不觉得该属性不存在?

设置选项没问题 另外,如果需要,我不介意稍微修改代码。

文本的构造函数读取用户输入,如下所示:

Su.text = function (form_elements) {
    this.text_object = {};
    var key;
    for (key in form_elements) { //*u
        if (form_elements.hasOwnProperty(key)) {
            this.text_object[form_elements[key].name] = form_elements[key].value;
        }
    }
    return this;
};

代码片段

function vDomBMAdd(bookmark_object) {
    var link_element = document.createElement('a'),
        image_element = document.createElement('img'),
        page_element = $a('#' + bookmark_object.tag + '_page'), // error here - inexistent property

参考

不存在与不存在的意思相同

4

1 回答 1

3

您有两个选择:创建一个声明“标签”属性的外部文件,或者,考虑到该属性的定义方式,可能更合适的是,使用带引号的属性访问:

bookmark_object['tag']

这两种方法都允许您访问“外部”属性,并且都与 ADVANCED 优化兼容,但使用 extern 文件允许您声明属性所持有值的预期类型,从而提供更好的类型检查。

于 2012-09-04T04:47:45.430 回答