`
simohayha
  • 浏览: 1395548 次
  • 性别: Icon_minigender_1
  • 来自: 火星
社区版块
存档分类
最新评论

一个创建闭包的小技巧

    博客分类:
  • ruby
阅读更多
一个小技巧,在Ola Bini 的blog上看到的。

假设你想要这样一个类:
创建这个类的时候send一个block给它,然后在后面可以通过某个方法名来调用这个block。
class DoSomething 
  def initialize   
    (class << self; self; end).send :define_method, :call do     
      yield   
    end 
  end
end
d = DoSomething.new do puts "hello world"
  end
d.call
d.call

   
分享到:
评论
2 楼 simohayha 2008-06-26  
对呀这边最妙的就是(class << self; self; end)这个闭包了。哈哈
1 楼 笨笨狗 2008-06-26  
(class << self; self; end).class_eval do
    #这里面定义一些单例方法,貌似也不错,就不限于call了,哈哈
end

相关推荐

    第十一课 闭包小例子-011

    在这个"第十一课 闭包小例子-011"中,我们主要探讨的是JavaScript中的闭包、模块化模式以及策略模式。闭包是一种高级编程技巧,它允许函数访问并操作其外部作用域中的变量,即使在其外部作用域已经结束之后。在...

    JS学习笔记之闭包小案例分析

    ### JS学习笔记之闭包小案例分析知识点 #### 闭包概念 闭包是JavaScript中一个非常重要的概念,它是一种特殊的对象,它允许一个函数访问并操作函数外部的变量。闭包的存在使得函数可以记住并访问所在词法作用域,...

    1000个javascript小技巧

    以上只是JavaScript知识体系中的一小部分,"1000个JavaScript小技巧"将包含更多实用技巧,涉及DOM操作、AJAX请求、动画制作、函数式编程等多个方面,通过学习这些技巧,开发者可以不断提升JavaScript技能,应对各种...

    搜集的js实践小技巧

    通常写作`(function() { /* code */ })()`,它允许我们在一个独立的作用域内运行代码。 2. **箭头函数**:ES6引入的箭头函数简化了函数定义,如`const add = (a, b) =&gt; a + b;`。它们没有自己的`this`,而是继承自...

    javascript小技巧全集

    这个"JavaScript小技巧全集"涵盖了各种实用的编程技巧,旨在帮助开发者提升效率,编写出更优雅、性能更好的代码。无论您是在Windows、MacOS还是Linux等任何操作系统上工作,这些技巧都是通用的。 一、函数与闭包 1....

    JavaScript自执行闭包的小例子

    在标题和描述中提到的JQuery库,就是一个典型的自执行闭包的应用实例。下面我们将详细讨论自执行闭包及其在JavaScript中的作用。 首先,我们来理解什么是闭包。闭包是JavaScript中的一种特性,它允许函数访问并操作...

    JavaScript小技巧全集

    JavaScript,作为全球最广泛使用的编程语言之一,是创建动态网页和交互式应用程序的关键工具。它是一种轻量级的解释型语言,以其灵活的语法和强大的功能深受开发者喜爱。本资料集合了众多JavaScript的小技巧,旨在...

    JavaScript小技巧全集 JavaScript教程 JavaScript源代码集

    例如,可以使用`setInterval`定时器函数来创建一个自动滚动的文本: ```javascript var elem = document.getElementById("myText"); var pos = 0; var id = setInterval(frame, 50); function frame() { if (pos =...

    JScript小技巧集合

    "JScript小技巧集合"这个主题涵盖了各种JavaScript的实用技巧和特效实现,可以帮助开发者提升网页交互体验,增强用户体验。下面将详细介绍一些常见的JavaScript知识点,以及如何利用它们来实现页面特效。 1. **DOM...

    9个常用的PHP代码片段编程小技巧共7页.pdf.zip

    【标题】中的“9个常用的PHP代码片段编程小技巧共7页.pdf.zip”指的是一个包含九个实用PHP编程技巧的压缩文件,共有七页内容。这个文件可能是某个教程或者参考资料,旨在帮助PHP开发者提高编程效率,解决实际问题。 ...

    JavaScript大综合 常用语句 事件 以及小技巧 和其他信息

    在这个“JavaScript大综合”中,我们将深入探讨JavaScript的常用语句、事件处理、小技巧以及其他相关信息。 一、JavaScript常用语句 1. **流程控制**:包括if...else条件语句、switch语句、for循环、while循环、do....

    Swifter - Swift 必备小技巧(中文版文档)

    《Swifter - Swift 必备小技巧》是一份专为Swift开发者精心编撰的学习资源,旨在帮助程序员提升Swift编程技能,解决实际开发中遇到的问题。这份文档提供了丰富的实用技巧,涵盖了语言特性、性能优化、错误处理等多个...

    40种网页常用小技巧(javascript)[不时之需]

    本资源“40种网页常用小技巧(javascript)[不时之需]”提供了四十个JavaScript实战技巧,旨在帮助开发者提升网页交互体验,提高工作效率。下面,我们将对这些技巧进行详细的解读。 1. **DOM操作**:JavaScript可以...

    jQuery使用经验小技巧(推荐)

    以下是一些关于jQuery使用经验的小技巧,这些技巧可以帮助你编写更加高效、可维护的jQuery插件。 1. **使用闭包封装代码**: 将jQuery插件的代码放在立即执行的匿名函数(IIFE)中,如 `(function($) { ... })...

    js代码-闭包-携带状态的函数

    闭包的一个关键用途是创建“携带状态”的函数,这意味着函数可以保留并修改其执行时的状态,而不是每次调用时都重置。例如,我们可以通过一个闭包来实现一个计数器: ```javascript function createCounter() { ...

    记录iOS(Swift)开发中的一些知识点、小技巧.zip

    在iOS(Swift)开发中,开发者经常会遇到各种挑战和问题,需要掌握一系列的关键知识点和小技巧来提升效率和代码质量。以下是一些重要的iOS开发概念和Swift编程实践,这些都是从"iOSTips-master"文件中可能包含的内容...

    javaScripts小技巧

    这个"javaScripts小技巧"的压缩包显然包含了20个实用的JS编程技巧,旨在提升开发效率和代码质量。以下是一些可能涵盖的知识点: 1. **变量声明与作用域**:理解var、let和const的区别,以及块级作用域和函数作用域...

    常用小技巧

    本资料包“常用小技巧”专注于JavaScript(js)领域,同时也涵盖了与之相关的Java和JSON技术。以下是一些核心的知识点,旨在帮助开发者更好地理解和应用这些技术。 1. **JavaScript基础知识**: - **变量与数据...

    javascript常用技巧

    6. **闭包**:闭包是指有权访问另一个函数作用域中变量的函数,创建闭包的常见方式是将函数作为其他函数的内部函数返回。 7. **异步编程**:JavaScript是非阻塞的,常用异步编程模型有回调函数、Promise、async/...

    Javascript高手精华

    闭包是 Javascript 中的一个重要概念,它允许一个函数访问并操作函数外部的变量。闭包的作用域链可以帮助函数访问外部作用域的变量,即使外部函数已经返回。 闭包的另一个重要应用是允许函数从外部读取局部变量。...

Global site tag (gtag.js) - Google Analytics