草庐IT

GMS模块

全部标签

JavaScript 模块

我有以下代码。它是一个JavaScript模块。(function(){//ObjectvarCahootsy;Cahootsy={hello:function(){alert('test');},};(Cahootsy.scope=(function(){returnthis;})()).Cahootsy=Cahootsy;returnCahootsy;}).call(this);我不明白的部分:(Cahootsy.scope=(function(){returnthis;})()).Cahootsy=Cahootsy;我认为它正在创建一个引用“this”模块的对象,然后将Cahoo

javascript - 将 requirejs 模块连接成单个文件

我正在尝试将我所有需要的模块和一些文本模板连接到一个连接且丑陋的main.min.js中,这样我就可以将该文件包含在我的HTML中。我弄清楚了串联和丑化部分。但是,那时我无法在浏览器中实际运行任何代码。我创建了一个bare-boneprojectongithub,以重现问题。文件结构:main.jsindex.html日志.js构建生产lib/require.jsnode_modules/require/bin/r.js我使用构建文件build-production连接main.js、log.js和require.js:./node_modules/requirejs/bin/r.js

javascript - 如何在没有 RequireJS 的情况下编写用于页面的 AMD 模块?

我需要重新构建一个现有的AMD模块,以使其在有/没有RequireJS的页面上都可用。我应该怎么做,有没有示例代码?最好是不污染全局命名空间的方法,尽管不是严格要求。 最佳答案 这根本不是一个坏主意,通常需要JS库来支持AMD/非AMD环境。这是解决方案的一种变体:!function(name,definition){if(typeofmodule!='undefined')module.exports=definition()elseif(typeofdefine=='function'&&define.amd)define(na

javascript - 通过 CDN 使用 Dojo 时如何加载自定义 AMD 模块?

我正在使用谷歌的CDN并尝试使用他们的加载器加载我自己的AMD模块。我知道我做错了什么,但我被困住了。有什么想法吗?require(["dojo/_base/kernel","dojo/_base/loader","dojo/parser"],function(dojo){dojo.registerModulePath("pgGallery","http://127.0.0.1:8080/js");});require(["pgGallery/Message"],function(m){m.success("foo");});http://127.0.0.1:8080/js/Messa

javascript - 如何在浏览器的 JavaScript 控制台中访问 ES6 模块中定义的函数?

我有一个在ES6模块(sender.js)中定义的函数,如下所示:functionsend(){//dostuff}export{send};此模块随后在应用程序的主要JavaScript文件app.js中使用,如下所示:import{send}from"./sender"send函数在app.js文件中可用,但是在Firefox的Javascript控制台中不:>sendReferenceError:sendisnotdefined如何在JavaScript控制台中导入send函数? 最佳答案 您可以通过将特定函数分配给全局对象来

javascript - 使用 Sinon.js 测试一个函数调用 ES6 模块中的另一个函数

我想测试ES6模块中的函数是否调用另一个使用Sinon.js的函数。这是我正在做的事情的基本布局:foo.jsexportfunctionbar(){baz();}exportfunctionbaz(){...}测试.jsimportsinonfrom'sinon';import*asFoofrom'.../foo';describe('bar',function(){it('shouldcallbaz',function(){letspy=sinon.spy(Foo,'baz');spy.callCount.should.eql(0);Foo.bar();spy.calledOnce

javascript - JavaScript 中的经典脚本与模块脚本

我正在浏览WHATWGasync的规范和defer的属性标记,当我看到这个声明时:Classicscriptsmayspecifydeferorasync;modulescriptsmayspecifyasync.我浏览了WHATWG对classic和module脚本的定义,但并没有真正弄清楚。简单来说,JavaScript中的classic和module脚本有什么区别? 最佳答案 以下是我从各种文章中注意到的差异。如果您想了解更多详细信息,请阅读互联网上的完整文章:模块是单例的。它们只会被加载和执行一次。模块可以使用导入和导出。模

javascript - 在 angularjs 模块初始化期间有条件地注入(inject)依赖项

我有一个Angular模块,我想有条件地将依赖项注入(inject)其中。即varmyapp=angular.module('myapp',['ngRoute','myappcontroller','ngGrid'//IwanttoincludengGridonlyifIamrunningadebugversionofmyapp]);有什么办法吗? 最佳答案 你可以,但需要一些额外的工作。第二个参数是一个数组,所以没有什么能阻止你这样做:vardev=['foo','bar'];varprod=['foo'];vardeps=dev

javascript - "public function can' t be overridden if a patch is necessary 是什么意思 ."in Addy' 揭示模块模式的描述?

Adisadvantageofthispatternisthatifaprivatefunctionreferstoapublicfunction,thatpublicfunctioncan'tbeoverriddenifapatchisnecessary.Thisisbecausetheprivatefunctionwillcontinuetorefertotheprivateimplementationandthepatterndoesn'tapplytopublicmembers,onlytofunctions.有没有人举例说明他的意思?LinktotheRevealingMod

JavaScript 模块模式与构造函数中定义的方法的构造函数

从单实例和多实例的Angular来看,为什么我要按照模块模式编写所有这些额外的代码行,而不是只使用标准构造函数,方法和属性在构造函数主体中定义?模块模式示例:http://jsfiddle.net/T3ZJE/1/varmodule=(function(){//privatevariablesandfunctionsvarfoo='bar';//constructorvarmodule=function(){};//prototypemodule.prototype={constructor:module,something:function(){}};//returnmodulere