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

/***
* 匿名函数
*/
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. 堆排序C++实现

    /* * heapsort.cpp * * Created on: 2016年3月30日 * Author: Lv_Lang */ //堆排序 #include <iostream> us ...

  2. 【LeetCode OJ】Maximum Depth of Binary Tree

    Problem Link: https://oj.leetcode.com/problems/maximum-depth-of-binary-tree/ Simply BFS from root an ...

  3. Win10/UWP开发—凭据保险箱PasswordVault

    PasswordVault用户凭据保险箱其实并不算是Win10的新功能,早在Windows 8.0时代就已经存在了,本文仅仅是介绍在UWP应用中如何使用凭据保险箱进行安全存储和检索用户凭据. 那么什么 ...

  4. H - Lazier Salesgirl

    Time Limit:2000MS     Memory Limit:65536KB     64bit IO Format:%lld & %llu Submit Status Practic ...

  5. js或者ext js获取返回值

      由于前台业务需要在判断中发起ajax到后台,根据返回值校验是否通过 代码如下 关键点在于要将async关闭 设置成同步,这样才能接收到要返回的flag                       ...

  6. Redis的简介与安装(windows)

    1.简介 Redis是一个key-value存储系统.和Memcached类似,它支持存储的value类型相对更多,包括string(字符串). list(链表).set(集合).zset(sorte ...

  7. 关于URI URL URN

    刚琢磨.整理了关于escape.encodeURIComponent.encodeURI的知识.突然又对URI有点模糊了,遂整理了以下资源 : 资源一: URL,URI 和URN 的举例理解 资源二: ...

  8. Spike Notes on Theory of (Software) Transactional Memory[Doing]

    Motivation 程序员是否需要在处理一致性问题或者同步时,一定要make hands dirty?能不能专注于应用级原子性,而无需考虑低层操作系统.运行时支持的原子性概念或者语言构造? 软件事务 ...

  9. 获取Ip地址

    public static string GetClientIPv4Address() { string ipv4 = String.Empty; foreach (IPAddress ip in D ...

  10. ODBC与ADO 连SQL Server 2005

    ADO是microsoft数据库应用程序开发的连连接口,是建立在OLE DB之上的高层 ADO使用方法步骤: 1.初始化COM库,引入ADO库定义 2.用connection对象连接数据库 3.利用连 ...