草庐IT

重命名

全部标签

Javascript 命名空间 - 多层次

我目前正在执行以下操作来为我的javascript代码提供一个命名空间:(function(foo,$,undefined){//function:showNoteDialogfoo.showNoteDialog=function(){//...}}(window.foo=window.foo||{},jQuery));我更喜欢的是:foo.showNoteDialog()就是要有一个多级命名空间:foo.notes.showDialog()foo.other.showDialog()这可能吗?我该怎么做? 最佳答案 这是我通常的做

javascript - 为什么以及何时在 es6 模块中使用默认导出而不是命名导出?

我已经引用了stackoverflow中的所有问题。但是没有建议为什么以及何时使用默认导出。我刚刚看到可以提到默认值“当一个文件中只有一个导出时”在es6模块中使用默认导出的任何其他原因? 最佳答案 可能会让您选择其中之一的一些差异:命名导出可以导出多个值导入时必须使用导出的名称默认导出导出单个值导入时可以使用任何名称Thisarticle很好地解释了何时最好使用其中一个。 关于javascript-为什么以及何时在es6模块中使用默认导出而不是命名导出?,我们在StackOverflo

javascript - 用于命名变量和函数的单个字母

上下文我阅读了Google编写的JavaScript代码示例。它使用:用于命名变量的单个小写字母用于命名函数的单个大写字母所以代码难以辨认。问题为什么这样命名?使用什么工具来做到这一点? 最佳答案 通常当大型Javascript库投入生产时,代码会被“最小化”以......减小下载大小使逆向工程代码变得更加困难不过,我认为主要动机是#1。此过程通常涉及删除注释和空格以及将变量引用更改为单个字符等操作。例如,看看JSMin. 关于javascript-用于命名变量和函数的单个字母,我们在S

javascript - 带有 Object.create 和命名构造函数的原型(prototype) OO

我是从Python和Smalltalk的背景转到Javascript的,我很欣赏这门语言中Self和Lisp的传承。使用ECMAScript5,我想在没有new运算符的情况下尝试原型(prototype)OO。约束:创建类的可选new运算符instanceof的原型(prototype)链必须是正确的用于WebInspector调试支持的命名构造函数alloc().init()创建序列,类似于Objective-C和Python这是我为满足标准而进行的尝试:functionsubclass(Class,Base){"usestrict";functioncreate(self,args

javascript - 如何在同一命名空间内从函数 B 调用函数 A?

假设我有命名空间,varNamespace={A:function(){alert('Hello!');},B:function(){//CallA()fromhere,dootherstuff}}在这个命名空间中,我打算让A成为B的辅助函数。也就是说,A()永远不会在命名空间之外被调用。它只会被命名空间内的函数调用。解决命名空间内本地/辅助函数问题的最佳方法是什么?我的看法有两种可能性://Method#1varNamespace={A:function(){alert('Method#1');},B:function(){Namespace.A();}}Namespace.B();

javascript - 自定义 grunt 任务命名约定

关于命名包含多个单词的自定义grunt任务是否有任何约定?例如:grunt-json-schemagrunt插件有json_schematask.一个名称包含破折号(-),另一个名称包含下划线(_)。显然,dashed-name不能用作JavaScript对象键:grunt.initConfig({json-schema:{//WON'Twork它们必须用引号引起来:grunt.initConfig({'json-schema':{//willwork我检查了所有官方插件(grunt-contrib-*),但它们都只有一个词。这个问题的动机很简单:我只是想遵循惯例。

javascript - 将 requireJS 模块暴露给全局命名空间的正确方法是什么?

我想将JavascriptAPI作为独立库公开,而不污染其全局命名空间。我已经创建了包装器,所以我不会根据http://requirejs.org/docs/faq-advanced.html污染他们自己的requireJS.我已经简化了目前为止的内容,但我不确定这是否是正确的方法,或者我是否应该以其他方式进行。varMyApi=MyApi||{};varMyApiRequireJS=(function(){//require.jspastedherereturn{requirejs:requirejs,require:require,define:define};})();(func

javascript - Javascript/AngularJS 中的命名空间事件?

我想知道AngularJS是否有命名事件的命名约定?jQuerydefinesitsconvention作为event.namespace(在末尾和点分隔符处有命名空间我看过一些文章(example),其中事件的命名方式如下:namespace::event(在start处有命名空间;和双冒号分隔符)在这个问题上有通用的做法吗?感谢您对此的看法。 最佳答案 我还没有听说过关于Angular的任何具体信息,但您应该考虑到在许多情况下,命名空间通常是一种很好的做法。如果您正在编写一个不会包含其他脚本的简单应用程序,那么命名空间就没有太多

javascript - react : Use this. props.children 或将组件作为命名 Prop 传递

我正在构建一个需要渲染一些子组件的组件。更具体地说,我有一个map组件,我希望在其上显示一个图例组件。constMap=props=>({this.props.children});//Usage:constMapWithLegend=()=>();//Usage:constMapWithoutLegend=()=>();然而,这也可以用命名Prop来表达:constMap=({legend}=>({legend});//Usage:constMapWithLegend=()=>();//Usage:constMapWithoutLegend=()=>();我不确定哪种方式在扩展性和可

Javascript 命名空间和条件包含

我有一些这样组织的js文件(参见source):gmaps4rails.base.js:包含所有逻辑gmaps4rails.googlemaps.js:包含函数gmaps4rails.bing.js:包含与上一个文件同名的函数所以基本上,base调用createMarkers(),它在googlemaps和bing中。从现在开始,我只加载gmaps4rails.googlemaps.js和gmaps4rails.googlemaps.js中的一个,具体取决于我需要的mapAPI,所以它工作正常。现在我希望能够加载所有文件(并将它们分开),但当然只包含所需mapAPI的代码。基本上我想的