标签: anonymous-function

在jQuery实用程序/ ajax方法中设置'this'的匿名函数范围

本博文中所述,您可以this在Javascript中设置匿名函数的范围.

在AJAX请求this的匿名函数调用中是否有更优雅的方法作用success(即不使用that)?

例如:

var Foo = {

  bar: function(id) {

    var that = this;

    $.ajax({
      url: "www.somedomain.com/ajax_handler",
      success: function(data) {
        that._updateDiv(id, data);
      }
    });

  },

  _updateDiv: function(id, data) {

    $(id).innerHTML = data;

  }

};

var foo = new Foo;
foo.bar('mydiv');
Run Code Online (Sandbox Code Playgroud)

使用调用但仍必须命名父对象范围that.

success: function(data) {
    (function() {
      this._updateDiv(id, data);
    }).call(that);
}
Run Code Online (Sandbox Code Playgroud)

javascript jquery scope anonymous-function

2
推荐指数
2
解决办法
3522
查看次数

javascript匿名函数范围

我有以下匿名功能:

(function() {
 var a = 1;
 var b = 2;

 function f1() {
 }

 function f2() {
 }

 // this => window object!
 // externalFunction(this);
})();

function externalFunction(pointer) {
 // pointer.f1(); => fail!
}
Run Code Online (Sandbox Code Playgroud)

我需要从这个匿名函数调用外部函数,并将它的指针传递给调用函数f1和f2.但我不能这样做,因为这引用了窗口对象而不是内部范围.

我可以将功能设置为:

this.f1 = function() {}
Run Code Online (Sandbox Code Playgroud)

但这是个坏主意,因为他们将在全球空间......

如何将匿名空间传递给外部函数?

javascript oop pointers scope anonymous-function

2
推荐指数
1
解决办法
3294
查看次数

在C#中传入匿名方法/函数作为参数

我有一个方法需要有条件地执行一个方法,如下所示:

int MyMethod(Func<int> someFunction)
{
    if (_someConditionIsTrue)
    {
        return someFunction;
    }

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我希望能够将Linq查询作为someFunction传递给MyMethod:

int i = MyMethod(_respository.Where(u => u.Id == 1).Select(u => u.OtherId));
Run Code Online (Sandbox Code Playgroud)

我该怎么做呢?

c# anonymous-methods anonymous-function

2
推荐指数
1
解决办法
6052
查看次数

为什么我不能在MATLAB匿名函数中定义变量?

我必须遗漏一些非常简单的东西,因为这似乎不应该是这么难.

这段代码是正确的:

clear all
whatever = @(x) deal(max(x), size(x));
input = randn(1,1000);
[a b] = whatever(input) 
Run Code Online (Sandbox Code Playgroud)

但是,我真正想做的是这样的事情:

clear all
whatever = @(x) deal(q = 3; q*max(x), size(x));
input = randn(1,1000);
[a b] = whatever(input)    
Run Code Online (Sandbox Code Playgroud)

这为什么会破裂?我不能在函数内定义q?我想使用匿名函数的全部原因是我实际上可以在其中执行多行代码,然后返回一个答案.我想匿名函数的最后一个语句是返回的,但是如何在其中定义变量?我不想在匿名函数的定义之前定义q.

谢谢.

matlab function anonymous-function

2
推荐指数
1
解决办法
2235
查看次数

在javascript中为变量分配自执行匿名函数有什么好处?

我正在阅读有关如何在窗口调整大小完成后触发函数帖子,并且遇到了一些将自动执行匿名函数分配给变量的示例:

var delay = (function(){
    var timer = 0;
    return function(callback, ms){
        clearTimeout (timer);
        timer = setTimeout(callback, ms);
    };
})();

$(window).resize(function() {
    delay(function(){
      alert('Resize...');
      //...
    }, 500);
});
Run Code Online (Sandbox Code Playgroud)

与传统用法相比,使函数操作数自行执行有什么区别/好处?即

var delay = function() { ... 
Run Code Online (Sandbox Code Playgroud)

javascript anonymous-function

2
推荐指数
1
解决办法
2200
查看次数

函数句柄的内存大小 - MATLAB

我的结构中的一个字段是函数句柄:

strct.handl=@(arg1,arg2)handl(arg1,arg2,par1,par2)
Run Code Online (Sandbox Code Playgroud)

现在,每次使用句柄时都会定义arg1和arg2,但是在定义句柄时会存储par1和par2.因此,(纠正我,如果我错了),处理像par1和par2指针的功能.

在任何一种情况下,我的问题是我如何看到我的内存句柄占用了多少空间,因为它也"指向"par1和par2.但是,如果我使用whos('handl'),我将只获得句柄的大小,而不是处理+ par1 + par2.

谢谢!

memory matlab closures function anonymous-function

2
推荐指数
1
解决办法
380
查看次数

在没有循环的结构中访问数据

我有一组字符串vals,例如:

vals = {'AD', 'BC'}
Run Code Online (Sandbox Code Playgroud)

我还有一个结构info,其中的结构嵌套在对应于数组中元素的字段中vals(在本例中为'AD'和'BC'),每个结构依次在一个名为的字段中存储一个数字lastcontract.

我可以使用for循环来提取lastcontract每个vals这样的:

for index = 1:length(vals)
    info.(vals{index}).lastcontract
end
Run Code Online (Sandbox Code Playgroud)

如果可能的话,我想找到一种没有循环的方法,但我没有运气.我试过了:

info.(vals{1:2}).lastcontract
Run Code Online (Sandbox Code Playgroud)

没有成功.我认为arrayfun可能是合适的方式,但我无法弄清楚正确的语法.

matlab struct anonymous-function

2
推荐指数
1
解决办法
1250
查看次数

用命名函数替换匿名函数(在jQuery中)

我的原始(工作)代码如下所示:

jQuery().ready(function ($) {
    $('[id="errorMessages"]').ajaxStart(function () {
        $(this).html("");
    });
    $('[id="errorMessages"]').ajaxError(function (e, jqxhr, settings, exception) {
        //...
    });
});
Run Code Online (Sandbox Code Playgroud)

当我试图将匿名函数替换为命名函数时,调用如下:(我正在为某些需求做一个POC,期望这样的实现.)

function fs() {
        $(this).html("");
}
function fe(e, jqxhr, settings, exception) {
        //...
}
jQuery().ready(function ($) {
    $('[id="errorMessages"]').ajaxStart(fs());
    $('[id="errorMessages"]').ajaxError(fe(e, jqxhr, settings, exception));
});
Run Code Online (Sandbox Code Playgroud)

我收到一个错误,说明参数'e'未定义.但没有参数的函数似乎工作正常.

我想知道匿名函数如何接收参数,而调用外部函数时则不可用.

有没有办法将这些参数化的匿名函数转换为常规函数调用.

javascript parameters jquery anonymous-function

2
推荐指数
1
解决办法
1226
查看次数

如何从元胞数组调用函数句柄?

我试图做的是保留一个函数句柄的元胞数组,然后在循环中调用其中一个。它不起作用,在我看来,我得到的只是一个 1x1 元胞数组,而不是其中的函数句柄。

我不固定使用单元格数组,所以如果另一个集合工作对我来说很好。

这是我的代码:

func_array = {@(x) x, @(x) 2*x }
a = func_array(1) %%% a = @(x) x
a(2) %%% (error-red) Index exceeds matrix dimensions.
a(0.2) %%% (error-red) Subscript indices must either be real positive integers or
logicals.
Run Code Online (Sandbox Code Playgroud)

谢谢阿米尔

arrays matlab anonymous-function

2
推荐指数
1
解决办法
1134
查看次数

PHP 的 register_shutdown_function() 使用匿名函数

根据手册http://php.net/manual/en/function.register-shutdown-function.php, register_shutdown_function() 实现为:

<?php
function shutdown()
{
    // This is our shutdown function, in 
    // here we can do any last operations
    // before the script is complete.

    echo 'Script executed with success', PHP_EOL;
}

register_shutdown_function('shutdown');
?>
Run Code Online (Sandbox Code Playgroud)

它可以作为匿名函数实现吗?如果是这样,如何?

php anonymous-function

2
推荐指数
1
解决办法
1263
查看次数