Google Closure Advanced |无法识别对象属性|动态属性

Google Closure Advanced | Object property not recognized | Dynamic Properties?

本文关键字:属性 对象 动态 识别 Closure Advanced Google      更新时间:2023-09-26

实际错误代码

JSC_不存在_属性

摘要

我收到下面列出并评论的代码的错误。

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

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

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

o_p.page = text_object.getArray();

有没有办法让谷歌关闭不会觉得该房产不存在?

设置选项也可以。此外,如果需要,我不介意修改代码。

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

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

参考

不存在的意思和不存在的是一样的

您有两个选项:创建一个声明"tag"属性的外部文件,或者,考虑到属性的定义方式,使用带引号的属性访问:

bookmark_object['tag']

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