实际错误代码
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不觉得该属性不存在?
设置选项是O.K.另外,如果需要,我不介意稍微修改一下代码。
文本的构造函数读取用户输入,如下所示:
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
参考
不存在意味着与不存在相同
答案 0 :(得分:3)
您有两个选择:创建一个声明'tag'属性的extern文件,或者更适当地给出属性的定义,使用带引号的属性访问:
bookmark_object['tag']
这两种方法都允许您访问“外部”属性并且兼容ADVANCED优化,但使用extern文件允许您声明属性所持有的值的预期类型,从而提供更好的类型检查。