【发布时间】:2012-05-30 05:25:28
【问题描述】:
我对 javascript 很陌生,所以也许这是一个愚蠢的错误。 我创建了一个像下面这样的对象:
function objA(){
this.prop1;
this.prop2;
this.prop3;
this.func1=function(){
alert('func1');
}
this.func2=function(){
alert('func2');
}
}
我现在有一个要传递对象的函数:
var foo=new objA;
function test(foo){....}
问题是,当我调用 test() 时,我执行了 objA(objA.func1 和 objA.func2)中的函数。 我只想获取 objA 的属性值。 我必须使用另一个函数和一个数组,用 objA 的属性填充数组,然后传递数组:
var arrayA={}
function fillArray(data){
arrayA.prop1=data.prop1;
arrayA.prop2=data.prop2;
arrayA.prop3=data.prop3;
}
function test(arrayA){....}
这是唯一的方法还是我做错了什么?
【问题讨论】:
-
是的,您的测试功能在执行您不想要的操作时是错误的。你能把它贴出来吗,这似乎对这个问题很重要?
-
同意......如果没有看到
test()的代码,就不可能说出发生了什么。 -
如您所见,它可以正常工作jsfiddle.net/GhNmK/1。因此,正如 Bergi 所说,您的测试功能是有原因的
-
测试函数只是一个 jquery ajax 调用,如下所示: function test(data){ var result; $.ajax({ url:url, data:data, type:'POST', dataType:dType, async:false, success:function(value){result=value;} });返回结果; }
标签: javascript function object parameter-passing