小编Kon*_*ter的帖子

Javascript匿名函数调用

当我遇到调用匿名函数的奇怪方式时,我正在阅读Twitter上的JS源代码 - 在改进我的JS知识库的过程中:

!function( $ ) {
    ...
}( window.jQuery );
Run Code Online (Sandbox Code Playgroud)

......这有效!:)

对每个人来说,显而易见的是:

function ( $ ) { ... } ( window.jQuery )
Run Code Online (Sandbox Code Playgroud)

不起作用(语法错误),而这一个是正确的:

(function ( $ ) { .... })( window.jQuery )
Run Code Online (Sandbox Code Playgroud)

任何人都可以解释这个魔术(为什么案例与!function作品)?

javascript anonymous-function

53
推荐指数
2
解决办法
5万
查看次数

PHP:函数参数的名称

我需要获取匿名函数参数的名称.

例如:

$func = function ( $param1, $param2 ) { ... };
$names = DO_SOMETHING($func); 
// after this $names should become something like array('param1', param2')
Run Code Online (Sandbox Code Playgroud)

从理论上讲,它是可能的,因为它var_dump($func)$funcClosure类的对象并具有parameter属性array('param1', 'param2').

php.net上的官方文档描述了Closure类的方法,它可以帮助我.

我试图直接访问这个属性,但PHP死于致命错误:Closure object cannot have properties.

我试图获得对象变量,get_object_vars但似乎parameter属性被解析为私有(无论如何,get_object_vars不会返回它).

我知道的唯一一种方法 - 截取输出var_dump并解析它,但是我们很容易理解这不是我们编写脚本的方式=)

对不起,我的英语不好.

php anonymous-function

5
推荐指数
1
解决办法
1574
查看次数

标签 统计

anonymous-function ×2

javascript ×1

php ×1