使用 Jquery 和对象属性函数时出现类型错误
TypeError when using Jquery and Object property function
我在使用 jquery 时遇到错误,我想知道它的原因:
这是我代码的一部分
function Wbook(name){
this.name = name;
}
Wbook.prototype.GetHTML = function() {
Object.defineProperty(this, "GetHTML", {enumerable : false,
configurable : true});
var html ='<h1>TEST1</h1>';
return html;
};
var rs = {};
rs.WB = new Wbook('test1');
var foo = rs.WB.GetHTML();
$(foo).appendTo('div#id1'); // This works
$(rs.WB.GetHTML()).appendTo('div#id1');
// This doesn't work >> TypeError: rs.WB.GetHTML is not a function
如果我评论Object.defineProperty
部分,我也可以开始工作,所以我怀疑这可能与可枚举性有关,但我不确定
编辑:在创建 Jfiddle 时,我注意到rs.WB.GetHTML()
第二次运行时总是失败:-/。(如果我评论Object.defineProperty
部分,它可以正常工作)
第一次
调用.GetHTML()
时,它会返回一些 HTML,但在此过程中,Object.defineProperty
调用会用没有值的新属性覆盖 .GetHTML
方法。
因此,在第二次调用时出现错误也就不足为奇了,因为那时.GetHTML
的值是undefined
。
如果代码的目的是确保GetHTML
不可枚举,请使用以下代码,该代码直接将方法添加到Wbook.prototype
并(自动)将其设置为不可枚举:
Object.defineProperty(Wbook.prototype, 'GetHTML', {
value: function() {
...
}
});
相关文章:
- 为什么会出现错误;未捕获的类型错误:undefined不是函数;
- 同样,同样的错误'ahorcado.js:26未捕获类型错误:无法读取属性'beginPath'
- 未捕获的类型错误:无法读取属性'删除'的未定义
- 未捕获的类型错误:无法读取属性'name'即使它存在,也无法定义
- 看到“;未捕获的类型错误:无法读取属性'weight'未定义的“;尽管按照字面上的指示
- Soundcloud api"未捕获的类型错误:无法读取属性'uri'“未定义”;
- 未捕获的类型错误:无法读取属性'addEventListener'的null chrome扩展名
- 如何解决这种情况下的非法调用类型错误
- 未捕获的类型错误:$(..).dataTable不是函数
- 未捕获的类型错误:无法读取属性'状态'在react中为null
- 未捕获的类型错误:topFrame.window.changeSelectedBarStyle不是函数,原因是什么
- 类型错误:url未定义extjs 4正在填充组合框
- 未捕获的类型错误:无法读取属性'中止'的未定义
- 类型错误'未定义'不是对象(正在评估'navigator.connection.type'
- 未捕获的类型错误:无法设置属性'innerHTML'如果为null,则将脚本移动到正文不会;不起作用
- 未捕获的类型错误:undefined不是函数$
- 输入类型文件的未捕获类型错误
- 未捕获的类型错误:无法设置属性'背景'的未定义
- "未捕获类型错误/丢弃意外“;因为一句台词而出现?(HTML w/<脚本>)
- Javascript未捕获类型错误:无法读取属性'0'的未定义