可能重复:
这是什么意思?(function(x,y)){...}){a,b); 在JavaScript
中围绕JavaScript对象/函数/类声明的括号是什么意思?
大家好
我不知道以下是什么:
(function(){
// Do something here
...
})(someWord) //Why is this here?;
Run Code Online (Sandbox Code Playgroud)
我的问题是:
(function(){});?我通常在jquery代码和其他一些javascript库中看到这些.
javascript scope coding-style anonymous-function javascript-namespaces
我正在对向量(权重)进行简单的规范化,试图利用STL算法使代码尽可能干净(我意识到这对于for循环来说非常简单):
float tot = std::accumulate(weights.begin(), weights.end(), 0.0);
std::transform(weights.begin(), weights.end(), [](float x)->float{return(x/tot);});
Run Code Online (Sandbox Code Playgroud)
目前,匿名函数看不到tot,因此无法编译.使局部变量对匿名函数可见的最佳方法是什么?
为什么return匿名函数中的显式返回语句(使用关键字的语句)从封闭的命名函数返回,而不仅仅是来自匿名函数本身?
例如,以下程序导致类型错误:
def foo: String = {
((x: Integer) => return x)
"foo"
}
Run Code Online (Sandbox Code Playgroud)
我知道建议避免使用return关键字,但我很感兴趣为什么显式和隐式返回语句在匿名函数中具有不同的语义.
在下面的示例中,return语句m在执行完毕后"幸存" ,并且程序导致运行时异常.如果匿名函数没有从封闭函数返回,则无法编译该代码.
def main(args: Array[String]) {
m(3)
}
def m: (Integer => Unit) =
(x: Integer) => return (y: Integer) => 2
Run Code Online (Sandbox Code Playgroud) 1.
function abc(){
alert("named function");
}
Run Code Online (Sandbox Code Playgroud)
V/S
2.
function(){
alert("Un-Named function");
}
Run Code Online (Sandbox Code Playgroud)
请从初学者的角度来解释一下.
表达式lambda和语句lambda之间有区别吗?
如果是这样,有什么区别?
在下面的链接中发现了这个问题,但无法理解答案什么是Expression Lambda?
该链接中提到的答案是这个 带有右侧表达式的lambda表达式称为表达式lambda.
根据我的理解,表达式始终只在右侧.这就是我提出这个问题的原因.有什么我不知道的吗?
WordPress钩子有两种使用方式:
使用回调函数名称和适当的函数
add_action( 'action_name', 'callback_function_name' );
function callback_function_name() {
// do something
}
Run Code Online (Sandbox Code Playgroud)使用匿名函数(闭包)
add_action( 'action_name', function() {
// do something
} );
Run Code Online (Sandbox Code Playgroud)WordPress的使用方法有什么区别吗?什么是首选方式和原因?
我在阅读使用javascript中的匿名函数是不好的做法,因为它可以使调试变得痛苦,但我还没有看到这个.JavaScript中的匿名函数是否真的很糟糕,如果是这样,为什么?
在github上查看代码时,我发现了以下内容:
(function() {
}).call(this);
Run Code Online (Sandbox Code Playgroud)
这显然是一个自我调用的匿名函数.但为什么这样写呢?我习惯于看到规范的变体(function() {})().
使用.call(this)自动调用匿名函数有什么特别的优势吗?
编辑:看起来某些commonjs环境this在模块的顶层设置为非全局值.哪些,以及它们this可能想要保留的内容是什么?
我需要能够做到这一点:
var getHed = () =>
{
// do stuff
return new { Property1 = value, Property2 = value2, etc...};
};
var anonymousClass = getHed();
Run Code Online (Sandbox Code Playgroud)
但我得到一个错误,表明我需要明确声明getHed.
如何声明Func使得T是我要返回的匿名类型?
如果你好奇我为什么需要这样做,那是因为我使用第三方软件允许自定义代码,但只能在一个方法中使用.这可能变得非常难以管理.我有一个想法,我可以使用匿名方法来帮助保持程序代码的组织.在这种情况下,为了帮助它,我需要一个新类,除了匿名之外我无法定义.
任何人都可以向我解释为什么A是真的并且B是假的?我本以为B也是如此.
function MyObject() {
};
MyObject.prototype.test = function () {
console.log("A", this instanceof MyObject);
(function () {
console.log("B", this instanceof MyObject);
}());
}
new MyObject().test();
Run Code Online (Sandbox Code Playgroud)