Javascript 使用jquery使用方法发布对象
我有一个简单的对象Javascript 使用jquery使用方法发布对象,javascript,jquery,object,post,methods,Javascript,Jquery,Object,Post,Methods,我有一个简单的对象 function MyClass() { this.id = null; // ... Lot of stuff in it } MyClass.prototype.parse = function(text) { // A parsing function that fills the object } 如果我尝试使用$.post $.post("target.php", { QUERY: "query_id", object: obj }, fu
function MyClass()
{
this.id = null;
// ... Lot of stuff in it
}
MyClass.prototype.parse = function(text)
{
// A parsing function that fills the object
}
如果我尝试使用$.post
$.post("target.php", { QUERY: "query_id", object: obj }, function(data){
console.log(data);
}, 'json');
由于obj
是MyClass
的一个实例,我得到一个错误:文本未定义
我如何让它明白我只希望发送数据,而不是像
parse
这样的方法,因为它不会产生任何意义?在执行Ajax调用时,您只能发送字符串。它会自动将数据转换为字符串,但如果不能,就像在您的例子中一样,它会抛出一个错误。在这种情况下,不发送obj,而是发送obj.data(字符串值) 您可以通过执行以下操作来迭代对象的属性
for (var prop in obj)
将其与typeof
结合使用以确定属性是否为函数,您可以创建一个函数以将所有非函数属性作为新对象返回。我以这个jsfiddle为例
这意味着你可以这样做
$.post("target.php", { QUERY: "query_id", object: obj.getProperties() }, function(data){
console.log(data);
}, 'json');
由于我的obj包含很多字段,因此自动转换非常好。有没有办法把它限制在可能的领域?我很确定这个链接会对你很有帮助:很好!我最后做的是将
getProperties
方法放在Postable
类中,并使其他类从中继承:)