jjzjj

Namespaces

全部标签

ruby-on-rails - 处理命名空间中的命名空间模型(类)

我正在使用RubyonRails3,我想在命名空间中处理模型(类)命名空间。也就是说,如果我有一个名为NS1的命名空间和一个名为NS2的命名空间的“子命名空间”,我想在中处理模型(类)NS2。如果我运行一个脚手架railsgeneratescaffoldns1/ns2/Articleid:integertitle:string它将生成以下模型文件:models/ns1/ns2/article.rbfilemodels/ns1/articles.rbmodels/ns1/articles.rb包含:moduleNs1::Articlesdefself.table_name_prefix'

ruby - 为什么我们要把模块放在 Ruby 的类中?

在Ruby中,我发现为了命名空间而将类放在模块中是很有用的。我还看到可以将模块放入类中。但我不明白你为什么要那样做。模块一般都是混入类的,对吧?那么,在类中定义模块的目的是什么? 最佳答案 我们可以在编写类似猿的代码时使用它:classDrugDealermoduleDrugdefhappy?;true;endenddefapproach(victim)victim.extendDrugendendo=Object.newDrugDealer.new.approach(o)o.happy?#=>true另一个在现实世界中更实用的示例

ruby-on-rails - 如何在 Ruby on Rails 中以编程方式查找命名空间/模块名称?

如何在下面的过滤器中找到namespace或模块“Foo”的名称?classApplicationController 最佳答案 这些解决方案都没有考虑具有多个父模块的常量。例如:A::B::C从Rails3.2.x开始,您可以简单地:"A::B::C".deconstantize#=>"A::B"从Rails3.1.x开始,您可以:constant_name="A::B::C"constant_name.gsub("::#{constant_name.demodulize}",'')这是因为#demodulize与#deconst

Ruby:::prefix 是做什么的?

我正在阅读Artifice的来源并看到:moduleArtificeNET_HTTP=::Net::HTTP#...end行:https://github.com/wycats/artifice/blob/master/lib/artifice.rb#L6为什么不直接做Net::HTTP而不是::Net::HTTP,即,当您使用::时,它是什么意思?作为前缀? 最佳答案 ::是范围解析运算符。它的作用是确定可以在什么范围内找到模块。例如:moduleMusicmoduleRecord#perhapsacopyofAbbeyRoadb

javascript - 命名空间是本地 JavaScript 函数所必需的吗?

我同意使用命名空间对于JavaScript库来说是必不可少的,但是那些驻留在script标记中的HTML文件中的函数呢?基本上这些是“本地”功能,从不与任何其他页面共享。你们还在为那些使用namespace吗?如果是,您是否使用与共享自定义库相同的命名空间? 最佳答案 我想说本地命名空间可以帮助防止与第3方JavaScript库发生任何可能的冲突,但这并不是必须的。 关于javascript-命名空间是本地JavaScript函数所必需的吗?,我们在StackOverflow上找到一个类

JavaScript 模块模式/组织/子模块

我想知道是什么区别(优点/缺点)之间以下模式。如何创建基于子模块的关于模块模式?我的目标是将我的js组织成多个文件,这些文件是延迟加载但有一个命名空间。例如:SO.global(global.js)SO.global.registration(registration.js)varSO=function(){varCONSTANT='Z';functioncreateX(){alert("createX");}functiongetY(){alert("getY");}return{create:createX,get:getY}}();//SO.createX();//SO.getY

javascript - 我可以在 'window' 以外的上下文中加载 javascript 文件吗?

我尝试加载一些外部.js文件,并且有一些无法解决的命名空间冲突。我想以某种方式在它们自己的上下文中加载一些文件,将“this”从指向窗口对象替换为某个自定义命名空间。例子:首先.js:name="first";second.js:name="second";在我看来,这种技巧非常有用。有可能吗?编辑似乎替换“this”并不能解决问题,因为它不是javascript中标识符解析的默认上下文。这是我的测试代码:varfirst={};varsecond={};(function(){name="first";}).call(first);(function(){name="second";

javascript - 如何在输入 ID 等于 'submit' 的情况下提交 javascript

我一直在将提交事件绑定(bind)到表单,并确保它们不会破坏表单,像这样使用jQuery:jQuery('form').submit(function(e){varform=this;e.preventDefault();alert('1');setTimeout(function(){alert('2');form.submit();},1000);});这一切都很好,除了,如果出于某种原因前端开发人员给这个表单的子输入一个id="submit",这会中断,因为form.submit()抛出JavaScript错误(在Chrome中,'UncaughtTypeError:Proper

javascript - TypeScript 在 Namespace 下扩展 JQuery

我正在尝试通过TypeScript中的函数扩展默认的JQuery接口(interface)和默认对象jQuery代码///namespaceMyNameSpace{var$=jQuery;exportinterfaceJQuery{test(options:Object):JQuery;}$.fn.test=function(options:Object):JQuery{if(this.length===0){console.log('Error!');returnthis;}console.log(options);returnthis;}exportvartestBody=func

javascript - Javascript 中的空函数使用

我正在尝试理解第三方Javascript代码。但是我无法弄清楚以下编码风格的用途。functionA(){}A.Prop='23';A.generate=function(n){//dosomething}然后它就被用作:A.generate(name);谁能解释这段代码的作用。我了解一些OOJavascript,但我想知道这是否是扩展具有新属性的对象的任何其他形式。尽管我没有看到使用任何“new”关键字来创建对象。有什么想法吗?谢谢, 最佳答案 他们正在创建一个命名空间。有很多方法可以做到这一点,所有方法都或多或少是等效的:A={