先来创建一个匿名函数对象:

/***
* 匿名函数
*/
var callChangeBtn=new function(bugBtn){
this.chage=function(json){
bugBtn.removeAttribute("disable");
bugBtn.innerHTML="立即购买";
console.log(json);
} }(event.target);

  用new构造一个匿名函数对象,该对象有两个作用:

1、存了你要回调方法要使用的购买button element对象即你要传的数据。

2、为该对象定义回调方法的实现。

我们在ajax的回调方法要写成:

success:callChangeBtn.chage

  

参考资料1:

function ManageCallback(TargetTag)
{
this.Success=function(Json){
if(Json.Status==1){
//alert(Json.Message);
TargetTag.innerText = Json.Message;
//window.location.reload();
}else{
TargetTag.innerText = Json.ErrorMessage;
//alert(Json.ErrorMessage);
}
}
} function Manage(ID, Type, Action, NeedToConfirm, TargetTag)
{
if(NeedToConfirm?confirm("确定执行该操作?"):true){
TargetTag.innerText = "Loading";
var CallbackObj=new ManageCallback(TargetTag);
$.ajax({
url:WebsitePath+"/manage",
data:{
ID: ID,
Type: Type,
Action: Action
},
cache: false,
dataType: "json",
type: "POST",
success: CallbackObj.Success
});
}
}

  参考资料2: javascript中匿名函数调用的多种方法

方式1,调用函数,得到返回值。强制运算符使函数调用执行

(function(x,y){
alert(x+y);
return x+y;
}(3,4));

  方式2,调用函数,得到返回值。强制函数直接量执行再返回一个引用,引用再去调用执行

(function(x,y){
alert(x+y);
return x+y;
})(3,4);

  

这种方式也是很多库爱用的调用方式,如jQuery,Mootools。

方式3,使用void

void function(x) {
x = x-1;
alert(x);
}(9);

  方式4,使用-/+运算符

-function(x,y){
alert(x+y);
return x+y;
}(3,4); +function(x,y){
alert(x+y);
return x+y;
}(3,4); --function(x,y){
alert(x+y);
return x+y;
}(3,4); ++function(x,y){
alert(x+y);
return x+y;
}(3,4);

  方式五

方式5,使用波浪符(~)

~function(x, y) {
alert(x+y);
return x+y;
}(3, 4);

  方式6,匿名函数执行放在中括号内

[function(){
console.log(this) // 浏览器得控制台输出window
}(this)]

  方式7,匿名函数前加typeof

typeof function(){
console.log(this) // 浏览器得控制台输出window
}(this)

  方式8,匿名函数前加delete

delete function(){
console.log(this) // 浏览器得控制台输出window
}(this)

  方式9,匿名函数前加void

void function(){
console.log(this) // 浏览器得控制台输出window
}(this)

  方式10,使用new方式,传参

new function(win){
console.log(win) // window
}(this)

  方式11,使用new,不传参

new function(){
console.log(this) // 这里的this就不是window了
}

  方式12,逗号运算符

1, function(){
console.log(this) // window
}();

  方式13,按位异或运算符

1^function(){
console.log(this) // window
}();

  方式14,比较运算符

1>function(){
console.log(this) // window
}();

  

javascript 利用匿名函数对象给你异步回调方法传参数的更多相关文章

  1. 前端笔记之JavaScript(九)定时器&JSON&同步异步/回调函数&函数节流&call/apply

    一.快捷位置和尺寸属性 DOM已经提供给我们计算后的样式,但是还是觉得不方便,因为计算后的样式属性值都是字符串类型. 不能直接参与运算. 所以DOM又提供了一些API:得到的就是number类型的数据 ...

  2. 谈谈Javascript的匿名函数

    JQuery 里面有这么一种代码: (function(){ // code here })(); 当一个匿名函数被括起来,然后再在后面加一个括号,这个匿名函数就能立即运行起来,神奇吧! 要说匿名函数 ...

  3. 【转载】javascript中的函数对象

    原文地址:http://www.cnblogs.com/phpzxh/archive/2009/09/16/1568137.html[侵删] 在javascript中函数的申明方式有四种 下面代码中一 ...

  4. JavaScript中匿名函数this指向问题

    this对象是在运行时基于函数执行环境绑定的,在全局函数中,this=window,在函数被作为某个对象的方法调用时,this等于这个对象. 但是匿名函数的执行环境是全局性的,所以匿名函数的this指 ...

  5. C++11用于计算函数对象返回类型的统一方法

    [C++11用于计算函数对象返回类型的统一方法] 模板 std::result_of 被TR1 引进且被 C++11 所采纳,可允许我们决定和使用一个仿函数其回返值的类别.底下,CalculusVer ...

  6. 函数对象的call()、apply() 方法区别

    函数对象的call().apply() 方法 函数作为对象提供了call(),apply() 方法,他们也可以用来调用函数,这两个方法都接受一个对象作为参数,用来指定本次调用时函数中this的指向: ...

  7. javascript . 04 匿名函数、递归、回调函数、对象、基于对象的javascript、状态和行为、New、This、构造函数/自定义对象、属性绑定、进制转换

    匿名函数:   没有名字的函数,函数整体加小括号不报错, 函数调用 : a:直接调用 (function (){函数体}) ( ) ; b:事件绑定 document.onlick = functio ...

  8. Javascript之匿名函数

    分析: 1.所谓匿名函数,从字面意思理解,就是没有名字的函数,js 用()来代替(注意,是英文状态下的括号) 2.定义形式: function (){ //to add codes that you ...

  9. Javascript的匿名函数与自执行

    1.匿名函数 函数是JavaScript中最灵活的一种对象,这里只是讲解其匿名函数的用途.匿名函数:就是没有函数名的函数. 1.1 函数的定义,首先简单介绍一下函数的定义,大致可分为三种方式 第一种: ...

随机推荐

  1. freeswitch:error C2220: 警告被视为错误 - 没有生成“object”文件

    项目 -> 属性-> 配置属性 -> c/c++ -> 将警告视为错误 -> 否 参考: http://www.cnblogs.com/kex1n/archive/201 ...

  2. Ionic2 rc2 Events 跨界面调用的使用方法及问题解决

    Events:事件注册  在任意一界面注册事件之后可在任意界面根据事件名称进行调用. 首先看一下官方文档的调用方式 import { Events } from 'ionic-angular'; co ...

  3. 字节序相关问题简单总结,LSB与MSB

    细细碎碎的知识点还真是不少啊,今天总结下通信中的数据字节序的问题. 先来认识名词: MSB:Most Significant Bit.    “最高有效位” LSB:Least Significant ...

  4. Postgresql存储过程调试:PostgreSQL 之 Function NOTICE

    转载自http://zhenghaoju700.blog.163.com/blog/static/13585951820116782843994/ 先安装一个PostgreSQL(见补充知识) 比较O ...

  5. 关于selenium2(webdriver)自动化测试过程中标签页面或者窗口切换的处理解决方案

    1.  通过页面或者window 的name切换: switch_to_frame(name) switch_to_window(name) 那么问题来了,出现2个或者以上窗口时候,新打开的windo ...

  6. [Linux学习]Shell脚本(1)--函数,输入,if判断(持续更新)+删除空行 +保存当前路径

    1)接收输入 check_status() { echo --Check hi_repo status is ok? y or n read var if [ "$var" != ...

  7. linux命令:df

    1.命令介绍: df用来检测磁盘空间占用情况. 2.命令格式: df [选项] 文件 3.命令参数: 必要参数: -a 全部文件系统列表 -h 方便阅读方式显示 -H 等于“-h”,但是计算式,1K= ...

  8. BackTrack5-r3 w3af无法更新问题解决

    wget http://pypi.python.org/packages/source/p/pybloomfiltermmap/pybloomfiltermmap-0.2.0.tar.gz --no- ...

  9. codeforces 724D(贪心)

    题目链接:http://codeforces.com/contest/724/problem/D 题意:给定一个字符串和一个数字m,选取一个一个子序列s,使得对于字符串中任意长度为m的子序列都至少含有 ...

  10. Jquery和Javascript 实际项目中写法基础-ajax和json (3)

    一.什么是JSON数据? 一种轻量级的数据交换格式.实际中知道如何使用即可. 软件开发我认为就是一个会用,然后知其原理的过程. 例子如下: <!DOCTYPE html> <html ...