gpt4 book ai didi

javascript - 使用Jquery和Object属性函数时出现TypeError

转载 作者:行者123 更新时间:2023-11-28 01:53:41 26 4
gpt4 key购买 nike

我在使用 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() {
...
}
});

关于javascript - 使用Jquery和Object属性函数时出现TypeError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19410601/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com