草庐IT

self-closing

全部标签

ruby - 为什么 Ruby setter 需要 "self."类内的资格?

Rubysetter——无论是由(c)attr_accessor创建的或手动——似乎是唯一需要的方法self.在类本身中访问时的限定。这似乎让Ruby在语言世界中独树一帜:所有方法都需要self/this(像Perl,我认为是Javascript)没有方法需要self/this是(C#,Java)只有setter需要self/this(ruby?)最好的比较是C#与Ruby,因为这两种语言都支持在语法上像类实例变量一样工作的访问器方法:foo.x=y,y=foo.x.C#称它们为属性。这是一个简单的例子;Ruby和C#中的相同程序:classAdefqwerty;@q;end#manu

ruby - 为什么特征类不等同于 self.class,当它看起来如此相似时?

我在某处遗漏了备忘录,希望您能向我解释一下。为什么一个对象的特征类不同于self.class?classFoodefinitialize(symbol)eigenclass=class我的逻辑系列将特征类等同于class.self很简单:class是一种声明类方法而不是实例方法的方法。这是defFoo.bar的快捷方式.所以在对类对象的引用中,返回self应与self.class相同.这是因为class会设置self至Foo.class用于类方法/属性的定义。我只是糊涂了吗?或者,这是Ruby元编程的偷偷摸摸的把戏吗? 最佳答案 c

Ruby 的 File.open 和 f.close 的必要性

在大多数编程语言中,众所周知,处理文件的流程是打开-使用-关闭。然而我在ruby​​代码中多次看到不匹配的File.open调用,而且我发现thisgemofknowledge在ruby文档中:I/Ostreamsareautomaticallyclosedwhentheyareclaimedbythegarbagecollector.darkredandyellow友好的irc处理这个问题:[17:12]是的,而且,文件描述符的数量通常受操作系统限制[17:29]我假设在垃圾收集器清理之前,您很容易用完可用的文件描述符。在这种情况下,您可能想自己关闭它们。“由垃圾收集器认领。”意味着

Ruby:扩展 self

在Ruby中,我了解extend的基本思想。但是,这段代码中发生了什么?具体来说,extend做了什么?它只是将实例方法变成类方法的一种便捷方式吗?为什么要这样做而不是从一开始就指定类方法?moduleRakeincludeTest::Unit::Assertionsdefrun_tests#etc.end#whatdoesthenextlinedo?extendselfend 最佳答案 将实例方法变成类方法是一种方便的方法。但您也可以将其用作moreefficientsingleton.

ruby - 实例变量 : self vs @

这是一些代码:classPersondefinitialize(age)@age=ageenddefage@ageenddefage_difference_with(other_person)(self.age-other_person.age).absendprotected:ageend我想知道的是在age_difference_with方法中使用@age和self.age的区别。 最佳答案 写@age直接访问实例变量@age。编写self.age告诉对象向自己发送消息age,它通常会返回实例变量@age—但可以做任何数字其他事

ruby - class << Ruby 中的 self 习语

什么是class在Ruby中做什么? 最佳答案 首先,class语法打开foo的单例类(eigenclass)。这允许您专门化在该特定对象上调用的方法的行为。a='foo'class"bar"a='foo'#newobject,newsingletonclassa.inspect#=>"foo"现在,回答问题:class打开self的单例类,以便可以为当前self重新定义方法对象(在类或模块体内是类或模块本身)。通常,这用于定义类/模块(“静态”)方法:classStringclass"42"这也可以简写为:classStringd

javascript - 为什么 DOM 既有 window 又有 self?

为什么DOM有一个名为self的对象和另一个名为window的对象,而它们是同一事物?更让人困惑的是window有一个名为self的属性,所以:window===window.self===self为什么会这样?我应该使用哪一个? 最佳答案 self由javascript环境定义并指向[global]对象(但不是规范的一部分,因此可能不存在),而window是DOM规范的一部分。在大多数浏览器中,window被用作[global]对象,但并非总是如此。self==window.self并不奇怪,因为它们是同一个对象-当查找self时

javascript - "click anywhere to close"的原型(prototype)最佳实践?

我发现自己经常处于打开网页中的元素的情况-例如一个下拉菜单-如果用户点击页面上除了元素本身以外的任何地方,我想关闭它。为简单起见,大部分代码都是我自己编写的,而不是使用一些下拉菜单类。但是,我从来没有设法构建一个完全令人满意的实现:事件处理和冒泡在不同的浏览器中会以不同的方式工作,需要一些讨厌的解决方法,在某些情况下单击下拉按钮会在同一时刻开始关闭它,依此类推。是否有基于原型(prototype)的权威最佳实践来执行此操作?跨浏览器工作的东西-IE6是一个加号但不是必需的?就是这样:点击按钮-打开一个元素(例如,绝对定位的下拉菜单)。在元素内单击-元素保持打开状态。单击打开元素的按钮t

javascript - parent.jQuery.fancybox.close();从 Fancybox 内部只关闭 Fancybox 一次

我正在尝试通过Fancybox内容中的链接关闭Fancybox实例。我正在按照thisquestion中的建议使用parent.jQuery.fancybox.close();.它第一次工作,但此后不工作。谁能建议修复?我将我的内容div隐藏在页面中:#content{display:none;}这是启动Fancybox的链接,内容div包含关闭Fancybox的链接。LaunchNuncporttitorpellentesquemagnaapulvinar.Vestibulumiddiamlectus.Praesentveldictumest.Close这是我的JS。我尝试在打开Fa

javascript - Angular : How to make an element that will close UI bootstrap dropdown on click

我正在使用AngularUI使用bootstrap,我正在使用uib-dropdown。我已将自动关闭设置为外部点击,但我还想在下拉列表中创建一个按钮来关闭它。我尝试将uib-dropdown-toggle添加到其中一个元素,但这完全破坏了下拉菜单(它根本打不开)。如何创建关闭下拉菜单的元素?相关代码:X...... 最佳答案 只需使用is-open属性和Angular变量来控制下拉菜单的“开放性”。然后您可以通过编程方式将此变量值设置为false以关闭下拉列表。这是您的代码中的示例:X......