首页 文章
  • 7 votes
     answers
     views

    通用类型的闭包参数 - 异常

    在下面的代码中,为什么Groovy似乎忽略了方法 barMany 中提供的闭包参数的泛型类型声明: import groovy.transform.CompileStatic @CompileStatic class Main { static main(args) { FooSub foo = new FooSub() BarSub bar = new ...
  • 5 votes
     answers
     views

    Javascript关闭澄清?

    正如我读过的文章一样多,我仍然有一些问题 . 我已经知道(并理解)关闭的用法,如: 臭名昭着的循环问题(带有保持号码的每个警报的链接循环) 增加计数器(继续调用函数 - >警告增加的数字) 来自here: 引用其外部函数的局部变量的内部函数创建闭包 来自here: 闭包是函数的局部变量 - 在函数返回后保持活动状态,或者闭包是函数返回时未释放的堆栈帧 . (好像'stac...
  • 4 votes
     answers
     views

    在JavaScript中关闭闭包的函数中声明另一个函数有什么意义?

    我仍然在努力思考JavaScript中的闭包(为了记录,我已经在Stack Overflow上阅读了JavaScript闭包的答案,加上“用于傻瓜的JavaScript闭包”,我仍然对它们感到困惑) . 我的主要问题是我无法理解在函数中声明另一个函数的重要性;我得到返回内部函数允许外部函数的局部变量保持活动,但在这个例子中是不是仍然如此? function sayName(name) { var ...
  • 1 votes
     answers
     views

    为什么javascript的Closure属性不适用于父对象

    根据javascript中闭包的定义:闭包是一个内部函数,可以访问外部(封闭)函数的变量范围链 . 因为javascript甚至功能都是对象 . 我的问题是,当绑定时,对象内部的函数(比如说bar)(比如foo)不能直接访问对象的属性 . 例如: var foo= { tmp: 3, x:2, bar: function(y) { console.log(x + y + (...
  • 4 votes
     answers
     views

    一个包罗万象的JavaScript闭包定义

    我已经阅读了关于闭包,MDN参考和其他博客文章的10个SO参考 . 他们似乎都以自己的方式定义闭包 . 例如,从MDN文档: function makeFunc() { var name = "Mozilla"; function displayName() { alert(name); } return displayName; } var myFu...
  • 0 votes
     answers
     views

    在调用函数后,函数的作用范围是什么?

    我正在使用闭包,我来到这个代码: doit = true; aww = function() { if(doit) {var foo; doit = false;} else {} foo = 0; foo += 1; return foo; } doit 是 aww 函数用于仅定义/ delcare foo 一次的变量 .当我第一次执行 aww 时,它将 foo 作为局部变量...
  • 1 votes
     answers
     views

    关闭误解

    我以为我理解闭包但我猜不是 . 这是一个代码示例,显示了我遇到的问题 . 我希望代码能够将'text'打印到控制台 . var inner = function() { console.log(text); }; var outer = function(cb) { var text = 'text'; cb(); }; 我使用内部函数作为cb运行外部函数 . 在这种情况下,我得到...
  • 0 votes
     answers
     views

    Python:从外部函数返回后修改非局部变量

    请考虑以下示例: def g(): in_g=100 def f1(): nonlocal in_g in_g = 10 def f2(): nonlocal in_g print(in_g) return (f1,f2) (f1, f2) = g() f2() #prints 100 f...
  • 0 votes
     answers
     views

    关于闭包的Javascript执行上下文

    阅读一些关于javascript执行上下文的文章 . 我现在的观点如下(如果我错了,请纠正我) . 执行上下文是执行JS代码的环境 . 执行上下文有三种类型: 全局执行上下文:JS代码开始执行的默认执行上下文 . 功能执行上下文:由函数内部代码执行创建的上下文 . 如果调用函数,则将上下文放在全局执行堆栈上 . Eval:在 eval() 函数内 . 执行上下文是一个堆栈,其中可以...
  • 2 votes
     answers
     views

    使用对象引用在Javascript中“关闭”:存储“私有变量”的位置?

    免责声明:这可能是一个愚蠢的问题,但这是让我在学习Javascript时感到困惑的事情 . 我最近遇到了使用Javascript中的闭包创建私有变量的范式方法,即使用一个函数返回一个通过其方法引用“私有变量”的对象 var safebox = function() { var _privateVariable = "abcd"; return { &quot...
  • 12 votes
     answers
     views

    更深入地了解Javascript中的闭包

    我正在阅读答案的评论并看到了this comment: [闭包]不会持久保存foo的状态,因为它创建了一个特殊的范围,包含(1)返回的函数和(2)返回时引用的所有外部变量 . 这个特殊范围称为闭包 . 好的,到目前为止一切顺利 . 现在这里是我不知道的有趣部分: 一个例子......如果你在foo中定义了另一个未在return函数中引用的var,它将不存在于闭包范围内 . 我想这是有道理的...
  • 101 votes
     answers
     views

    这个JavaScript模式叫什么,为什么用?

    我正在研究THREE.js,并注意到一个模式,其中函数定义如下: var foo = ( function () { var bar = new Bar(); return function ( ) { //actual logic using bar from above. //return result; }; }()); (例子见r...
  • 0 votes
     answers
     views

    使用闭包在javascript中枚举对象属性的静态变量

    所以我一直在研究javascript,现在我正在关注闭包 . 我以为我理解了所有的概念,但我显然错过了一些东西 . 出于学习目的,我创建了这个闭包,它基本上就像一个带有Object和整数成员的类 . 代码如下: var AllFilters = (function () { var _length = 0; var _filters = {}; ...
  • 0 votes
     answers
     views

    为什么我不能从JavaScript闭包中返回结果?

    我希望函数foo()能够关闭它作为参数所使用的函数 . 然后当使用bar()从闭包内部调用该函数时,我想在返回之前将结果存储在缓存中 . 然后下一次调用bar()我想检查缓存中的答案,然后返回(如果可能的话)而不是评估整个函数 . (与memoize相似 . ) 我写了一些我认为应该有用的东西,但由于某种原因,第一次调用bar()时它不会返回结果 . 它可以将其记录到控制台,但不能将其返回 . ...
  • 0 votes
     answers
     views

    Javascript关闭YDNJS

    var fn; function foo() { var a = 2; function baz() { console.log( a ); } fn = baz; // assign baz to global variable } function bar() { fn(); // look ma, I saw closu...
  • 0 votes
     answers
     views

    为什么这个闭包返回功能?

    在观看学习爱的JavaScript时,我不知道为什么这个第二版不起作用 . 它只返回'功能' . 是不允许关闭直接分配给它的变量? function getCtr() { var i = 0; return function() { console.log(++i); } } var ctr = getCtr(); ctr(); ctr(); ctr(); ...
  • 0 votes
     answers
     views

    闭包导致错误Swift

    我有两个班, Model 和 ViewController . 我在 ViewController 中调用了 Model 中的一个方法,完成后我需要执行闭包 . 这就是我所做的: Model.swift typealias LoginCompletionBlock = () -> Void func registerUser(username : String, emailID emai...
  • 8 votes
     answers
     views

    不理解Swift中的闭包示例

    我正在努力学习快速和闭合 . 我坚持这个例子 . numbers.map({ (number: Int) -> Int in let result = 3 * number return result }) 什么是(数字:国际) - >国际?这是一个功能吗?它在哪里定义? https://developer.apple.com/library/ios/doc...
  • 1 votes
     answers
     views

    我在以下代码中使用闭包 - 了解Swift中的闭包

    在函数中使用时,我很难理解闭包 . 在下面的代码中,我创建了一个函数,它获取了两个参数并返回一个函数,但是因为我看到了一些教程,他们展示了一些类似的例子,他们将它们称为 "capturing constants and variables values using closures" ,但在我的例子中,我并没有真正看到闭包 . 我可以说在下面的代码示例中 incrementer...
  • 0 votes
     answers
     views

    每次调用我的函数时,我想打印下一天的名字

    我需要创建一个名为NextDay()的javascript函数 . 此功能应该在控制台中打印第二天的名称 . 我创建了一个函数如下: //Function to Print the name of Next Day in Javascript var NextDay = (function () { counter = 0; var nextDay = function (...
  • 3 votes
     answers
     views

    为闭包委托实现methodMissing()

    我正在尝试使用Java和Groovy实现一些通用的DSL . 我的想法是使用类似 data { name 'my name' } 的语法并拦截所有方法调用 methodMissing ,我可以检查方法名称是否等于字段并通过运行闭包来设置它 . 我使用Java编写我的数据类,它看起来像这样 . public class TestData { @Getter @Setter prote...
  • 1 votes
     answers
     views

    创建全局Groovy闭包

    我正在尝试学习如何在groovy中创建一个全局闭包(比如println闭包) . 我有以下代码: a.groovy def header = Tools.&header header 'groovy script a' b.groovy def header = Tools.&header header 'groovy script b' tools.groovy class ...
  • 1 votes
     answers
     views

    如何从Groovy中的闭包使用字段而不是访问器

    我有类似下面的groovy类: class Foo { private Map<String,String> bar = [:] Map<String, String> getBar() { return bar.asImmutable() } def doSomething(List<String> argValues...
  • 2 votes
     answers
     views

    Groovy闭包,def与类型返回值

    在Groovy控制台中,版本2.2.1:为什么这样做? class C { def foo = { "foo" } def bar = { foo() } } new C().bar() 但这失败了吗? class C { String foo = { "foo" } String bar = { foo() } } new C()...
  • 1 votes
     answers
     views

    Groovy闭包没有捕获静态闭包变量

    有人可以解释一下为什么对 qux 的调用失败了吗?它在创建时似乎没有捕获静态闭包变量 foo 的名称 . 如果我故意将名称分配给变量,如 baz 那么它可以工作,或者如果我通过类调用它 . 我认为这个变量捕获也适用于闭包类变量,但我必须遗漏一些东西 . class C { static foo = { "foo" } static bar = { C.foo() } ...
  • 4 votes
     answers
     views

    Groovy:在调用任何方法之前和之后,执行代码是透明的

    假设我们有一个带有一些方法(静态或非静态)的groovy类 . 我想要做的是在调用此类的每个方法之前和之后执行一些代码,而根本不需要触及类,也不需要动态操作每个方法内部的代码 . 我尝试使用groovy metaClass;获取metaClass的所有方法,然后使用包装方法动态替换every方法,包含一些代码,并在中间调用旧方法 . 问题是,我不知道每个原始方法的参数,所以我不能用新方法(闭包)替...
  • 0 votes
     answers
     views

    Groovy和Java Callbacks / Lambdas(带有类型的闭包)

    这是我在Java中的回调( future 是Mongo的SingleFutureResult): future.register(new SingleResultCallback<ArrayList<Document>>() { @Override void onResult(ArrayList<Document> documents, Mong...
  • 0 votes
     answers
     views

    Groovy - 闭包 - 没有方法签名:FeedClass.feedData()适用于参数类型:(Data,FeedClass $ _closure1)

    我试图理解闭包在Groovy中是如何工作的以及如何在方法中传递这些闭包 . 我有FeedClass和feedData方法,在这个方法中我定义了一个闭包 . 但是,即使闭包是在方法内部定义的,我仍然会收到错误No Signature of method ...好像它期待方法参数中的闭包 . void feedData(def Data) { def calculateDat...
  • 1 votes
     answers
     views

    了解Groovy计数闭包

    我刚刚开始使用Groovy,虽然它在's refreshing to finally have closures to work with in a Java environment, I'有问题让 count 像我想要的那样工作 . 假设我有一个类 Foo ,看起来像这样: public class Foo { private boolean isBar; public bo...
  • 3 votes
     answers
     views

    为什么在Groovy闭包中设置的实例变量的值在其外部不可见?

    Question 为什么 methodA() 打印 set within run 而不是 set within closure ? Code example class GroovyClosureVariableScopingTest extends Script { String s Object run() { s = "set within ru...

热门问题