js反回参为数的方法怎么写?

BILLSSJONE 2010-09-07 10:59:05
$.ajax({
type : "POST",
cache : false,
url : "./examples/login.php",
data : data,
success: function(data) {
 alert(data);
}
});
====================
比如jquery里面的ajax用法,将结果反回到function(data) 是怎么实现的?
我写个测试函数,怎么都不成功,传参数是行的,但怎么返回结果给data?要怎么写?
function ajax(){
//调有函数时是否有参数,没有就设置默认值
var type=arguments[0].type?arguments[0].type:'post';
var url=arguments[0].url?arguments[0].url:'';
var result="<b>测试</b>";
var success=arguments[0].success?result:'';

}
ajax({
type:'get',
success: function(data) {
alert(data);
}
});
...全文
125 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
BILLSSJONE 2010-09-08
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 xiaojing7 的回复:]
你可以跳出这个思维模式来思考为
其实也就是把这个函数来执行了,怎么执行呢,要看这个函数的切入口在什么地方,
哦,这个函数属于对象。那么OK了,我找到函数,直接执行
你所谓的不能称作返回参数。
[/Quote]

我不是很明白对象怎么用,以前写函数时就是这样写:
myfun(arg1,arg2,arg3,arg4,arg5){...}
调用时就很麻烦,不需要的参数也要写出来:
myfun(1,'','','','','');
改成上面和写法调用时就好看了,没用的参数就可以省掉了,只需要一个参数就写一个就行了:
myfun({
arg1: '1'
};
});
BILLSSJONE 2010-09-08
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 aj3423 的回复:]
JScript code
function myfun(o) {
o.result('我是返回值');
}
myfun({
arg1: '1',
arg2: '2',
result: function(msg) {
alert(msg);
}
});
[/Quote]

太谢谢了,就是要这样的效果。

又学到了还可以这样设置没有参数时的默认值了,
var arg1=args.arg1?args.arg1:'post';
不用这样写也可以:
var type=arguments[0].type?arguments[0].type:'post';
xiaojing7 2010-09-08
  • 打赏
  • 举报
回复
你可以跳出这个思维模式来思考为
其实也就是把这个函数来执行了,怎么执行呢,要看这个函数的切入口在什么地方,
哦,这个函数属于对象。那么OK了,我找到函数,直接执行
你所谓的不能称作返回参数。
kongxh1218 2010-09-08
  • 打赏
  • 举报
回复
// 定义函数
function myFun(obj)
{
// obj必须包括的2个参数
var value = obj.value; // 数值类型
var account = obj.account; // function

// 处理后的结果
var v = value + 2;

account(v);
}

// 用户调用
myFun({
value:1,
account:function(data){
alert(data); // data就是value + 2后的值
}
});
aj3423 2010-09-08
  • 打赏
  • 举报
回复
一个函数myfun(arg1,arg2,arg3,arg4,arg5){...} 参数多而且经常会修改时,一般用一个object

myfun(o) 其中
o.arg1 o.arg2 都是可选 互不冲突
BILLSSJONE 2010-09-08
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 aj3423 的回复:]
var arg1 = args.arg1 ? args.arg1 : 'post';
简写
var arg1 = args.arg1 || 'post';

var type = arguments[0].type ? arguments[0].type : 'post';
同上
var type = arguments[0].type || 'post';

另外用argumen……
[/Quote]

谢谢,明天结帖, myfun(arg1,arg2,arg3,arg4,arg5){...} 这样写可读性不好,让人不知道参数是干什么用的,arg1: '1',这样写就清楚了,这个参数有个标签一看就知道,
再说myfun(arg1,arg2,arg3,arg4,arg5){...} 这样写修改不方便,如果我想再添加参数,以前的函数调用都要修改,arg1: '1'这种方法我只要修改函数里面就行了,以前的调用就不用管,因为有的参数可写可不写。
「已注销」 2010-09-08
  • 打赏
  • 举报
回复
好郁闷啊 !!!!!
aj3423 2010-09-08
  • 打赏
  • 举报
回复
var arg1 = args.arg1 ? args.arg1 : 'post';
简写
var arg1 = args.arg1 || 'post';

var type = arguments[0].type ? arguments[0].type : 'post';
同上
var type = arguments[0].type || 'post';

另外用arguments影响可读性,大部分情况下还是写上 myfun(arg1,arg2,arg3,arg4,arg5){...} 比较好
aj3423 2010-09-07
  • 打赏
  • 举报
回复
function myfun(o) {
o.result('我是返回值');
}
myfun({
arg1: '1',
arg2: '2',
result: function(msg) {
alert(msg);
}
});
BILLSSJONE 2010-09-07
  • 打赏
  • 举报
回复
不一定要ajax,就用一个普通的函数返回值就行了,
myfun({
arg1: '1',
arg2: '2',
result: function(msg) {
alert(msg);
}
});
那么怎么写这个myfun()能够提示alert(msg)?
myfun(){
return "我是返回值";
}
aj3423 2010-09-07
  • 打赏
  • 举报
回复
大致就是

function ajax(o) {
var req = createXHR();
req.onreadystatechange = function() {
if(..success..) {
o.success(req.responseText);
}
}
req.open('GET', o.url, true);
req.send(NULL);

}

ajax({
type: 'get',
success: function(msg) {
alert(msg);
}
});

BILLSSJONE 2010-09-07
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 aj3423 的回复:]
data : data,
success: function(data) {
 alert(data);
}
没有用过jquery,但这里的2个data应该是不同的东西,发请求去拿回来的data怎么可能和事先已有的data一样,那请求都不用发了
success 那个data应该是后台返回的值,至于怎么实现,google搜:简单 ajax 实现
[/Quote]
ajax返回值我会,只是返回到success参数里面再使用就不知道怎么写了:
ajax({
type:'get',
success: function(msg) {
alert(msg);
}
});
BILLSSJONE 2010-09-07
  • 打赏
  • 举报
回复
这两个data是不同的,第二个data是任意命名的,也可以写成:
data : data,
success: function(msg) {
 alert(msg);
}
我写的那个函数跟jquery没有关系,只是想实现它那样的返回方式,就是返回结果到msg,然后可以执行里面的代码alert(msg);:
success: function(msg) {
 alert(msg);
aj3423 2010-09-07
  • 打赏
  • 举报
回复
data : data,
success: function(data) {
 alert(data);
}
没有用过jquery,但这里的2个data应该是不同的东西,发请求去拿回来的data怎么可能和事先已有的data一样,那请求都不用发了
success 那个data应该是后台返回的值,至于怎么实现,google搜:简单 ajax 实现

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧