flexigrid的处理函数使用闭包传递this对象

很多时候,process函数都需要获得this对象,然后调用一些方法。

下面举个例子:

	config : function (groupName, description, deviceNumber, del) {
	    var ob = this;
	    $("#groups").flexigrid(
		{
		    dataType: ‘json‘,
		    width: 870,
		    height: 300,
		    colModel : [
			{
			    display: groupName,
			    name: ‘groupName‘,
			    width: 200,
			    sortable: true,
			    align: ‘left‘,
			    process: (function (ob, hdl) {
				return function (celDiv, id) {
				    hdl(ob, celDiv, id);
				};
			    }(ob, ob.editName))
			},
			{
			    display: description,
			    name: ‘description‘,
			    width: 469,
			    sortable: true,
			    align: ‘left‘,
			    process: (function (ob, hdl) {
				return function (celDiv, id) {
				    hdl(ob, celDiv, id);
				};
			    }(ob, ob.editDescription))
			},
			{
			    display: deviceNumber,
			    name: ‘deviceNumber‘,
			    width: 110,
			    sortable: true,
			    align: ‘left‘
			},
			{
			    display: del,
			    name: ‘del‘,
			    width: 25,
			    sortable: true,
			    align: ‘left‘,
			    process: (function (ob, hdl) {
				return function (celDiv, id) {
				    hdl(ob, celDiv, id);
				};
			    }(ob, ob.remove))
			}
		    ]
		}
	    );
	    $.ajaxSetup({ cache: false });
	},

这样就能完美的解决无法传额外参数的问题。

时间: 2024-10-16 04:42:04

flexigrid的处理函数使用闭包传递this对象的相关文章

Swift:函数和闭包

函数 函数是一个完成独立任务的代码块,Swift中的函数不仅可以像C语言中的函数一样有函数的参数和返回值,而且还支持嵌套,并且有函数参数默认值.可变参数等. 1 //定义一个函数,注意参数和返回值,如果没有返回值可以不写返回值或者写成Void.空元组()(注意Void的本质就是空元组) 2 func sum(num1:Int,num2:Int)->Int{ 3 return num1 + num2 4 } 5 6 sum(1, 2) 可以看到Swift中的函数仅仅表示形式有所区别(定义类似于Ja

Swift中文教程(四)--函数与闭包

原文:Swift中文教程(四)--函数与闭包 Function 函数 Swift使用func关键字来声明变量,函数通过函数名加小括号内的参数列表来调用.使用->来区分参数名和返回值的类型: 1 func greet(name: String, day: String) -> String { 2 return "Hello \(name), today is \(day)." 3 } 4 greet("Bob", "Tuesday")

PHP匿名函数及闭包

匿名函数在编程语言中出现的比较早,最早出现在Lisp语言中,随后很多的编程语言都开始有这个功能了, 目前使用比较广泛的Javascript以及C#,PHP直到5.3才开始真正支持匿名函数,C++的新标准C++0x也开始支持了. 匿名函数是一类不需要指定标示符,而又可以被调用的函数或子例程,匿名函数可以方便的作为参数传递给其他函数,最常见应用是作为回调函数. 闭包(Closure) 说 到匿名函数,就不得不提到闭包了,闭包是词法闭包(Lexical Closure)的简称,是引用了自由变量的函数,

苹果新的编程语言 Swift 语言进阶(六)--函数和闭包

一 .函数 1.1. 函数的定义和调用 函数的定义以func关键字作为前缀,接着是函数名字,接着跟着一个可以带有参数,也可以不带参数的圆括号,接着用-> 指示函数的返回类型.函数执行体用一对大括号{}包围.如下定义了一个函数名为sayHello的函数,该函数包含一个名字为personName,类型为String的输入参数. func sayHello(personName:String) -> String { let greeting ="Hello, " +person

javascript回调函数,闭包作用域,call,apply函数解决this的作用域问题

在JavaScrip中,function是内置的类对象,也就是说它是一种类型的对象,可以和其它String.Array.Number.Object类的对象一样用于内置对象的管理.因为function实际上是一种对象,它可以“存储在变量中,通过参数传递给(别一个)函数(function),在函数内部创建,从函数中返回结果值”. 因为function是内置对象,我们可以将它作为参数传递给另一个函数,延迟到函数中执行,甚至执行后将它返回.这是在JavaScript中使用回调函数的精髓.本篇文章的剩余部

JavaScript中的函数与闭包

转自javascript深入理解js闭包_javascript技巧_脚本之家 http://www.jb51.net/article/24101.htm 闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现. 一.变量的作用域 要理解闭包,首先必须理解Javascript特殊的变量作用域. 变量的作用域无非就是两种:全局变量和局部变量. Javascript语言的特殊之处,就在于函数内部可以直接读取全局变量. Js代码 var n=999; fu

python函数的闭包

---恢复内容开始--- python允许有内部函数,也就是说可以在函数内部再定义一个函数,这就会产生变量的访问问题,类似与java的内部类,在java里内部类可以直接访问外部类的成员变量和方法,不管是否私有,但外部类需要通过内部类的引用来进行访问.python内部函数和外部函数的成员变量可以相互访问但是不能修改,也就是所谓的闭包.举个例子 1 def outt(): 2 x=10 3 def inn(): 4 x+=1 5 return x 6 return inn() 7 8 outt()

php值callback类型和匿名函数(闭包)

callback.callable类型 自PHP5.4起可以使用callable类型制定回调类型callback. 本文档基于同样理由使用callback类型信息. 一些函数如call_user_func()或者usort()可以接受用户自定义的回调函数作为参数,回调函数不不止可以是简单的函数, 还可以是对象的方法,包括静态类方法. 传递??????????? PHP是将函数已string形式传递的.keyi9使用任何内置或者用户自定义函数,但除了语言结构例如:array.echo.empty.

函数名的运用(第一类对象)以及闭包与迭代器

一.函数名的应用(第一类对象) 1.函数的命名规范和变量是一样的,函数名其实就是变量名. 2.函数名的内存地址 def func(): print("呵呵" print(func) 结果: <function func at 0x1101e4ea0> 3.函数名可以赋值给其他变量 def func(): print("呵呵") print(func) a = func # 把函数当成一个变量赋值给另一个变量 a() # 函数调用 func() 结果: &