Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings
uupaa edited this pageOct 11, 2016 ·23 revisions

このエントリでは WebModule.js について説明します。

Load order

最初に WebModule.js を読み込み、その後に WebModule製のモジュール(例: MyExample.js)を読み込みます。

<scriptsrc="../../lib/WebModule.js"></script><script>//publish to global. eg: window.WebModule.Class -> window.Class//WebModule.PUBLISH = true;</script><scriptsrc="../../lib/MyExample.js"></script><script>varmyExample=newWebModule.MyExample();</script>

Publish to GLOBAL

モジュールを GLOBAL 空間以下に直接公開することもできます。

モジュールを読み込む前に、WebModule.PUBLISH = true; を設定しておくと、
通常new WebModule.MyExample() のように記述すべきところを、
new MyExample() と、より短く記述できるようになります。

<scriptsrc="../../lib/WebModule.js"></script><script>WebModule.PUBLISH=true;</script><scriptsrc="../../lib/MyExample.js"></script><script>varmyExample=newWebModule.MyExample();varmyExample=newMyExample();// same</script>

WebModule.js

WebModule version 0.7.3 時点の WebModule.js はこのようになっています。

GLOBAL は ブラウザ上では window と等価です。
Namespaceを参照してください。

// http://git.io/WebModule// --- global variables ------------------------------------// https://github.com/uupaa/WebModule/wiki/WebModuleIdiomvarGLOBAL=(this||0).self||global;// --- environment detection -------------------------------// https://github.com/uupaa/WebModule/wiki/EnvironmentDetection(function(){varhasGlobal=!!GLOBAL.global;// Node.js, NW.js, ElectronvarprocessType=!!(GLOBAL.process||0).type;// Electron(render and main)varnativeTimer=!!/native/.test(setTimeout);// Node.js, Electron(main)GLOBAL.IN_BROWSER=!hasGlobal&&"document"inGLOBAL;// Browser and WorkerGLOBAL.IN_WORKER=!hasGlobal&&"WorkerLocation"inGLOBAL;// WorkerGLOBAL.IN_NODE=hasGlobal&&!processType&&!nativeTimer;// Node.jsGLOBAL.IN_NW=hasGlobal&&!processType&&nativeTimer;// NW.jsGLOBAL.IN_EL=hasGlobal&&processType;// Electron(render and main)})();// --- validation and assertion functions ------------------//{@dev https://github.com/uupaa/WebModule/wiki/ValidateGLOBAL.$type=function(v,types){returnGLOBAL.Valid ?GLOBAL.Valid.type(v,types)  :true;};GLOBAL.$keys=function(o,keys){returnGLOBAL.Valid ?GLOBAL.Valid.keys(o,keys)   :true;};GLOBAL.$some=function(v,cd,ig){returnGLOBAL.Valid ?GLOBAL.Valid.some(v,cd,ig) :true;};GLOBAL.$args=function(api,args){returnGLOBAL.Valid ?GLOBAL.Valid.args(api,args) :true;};GLOBAL.$valid=function(v,api,hl){returnGLOBAL.Valid ?GLOBAL.Valid(v,api,hl)     :true;};GLOBAL.$values=function(o,vals){returnGLOBAL.Valid ?GLOBAL.Valid.values(o,vals) :true;};//}@dev// --- WebModule -------------------------------------------GLOBAL.WebModule={CODE:{},// source code container.VERIFY:false,// verify mode flag.VERBOSE:false,// verbose mode flag.PUBLISH:false,// publish flag, module publish to global namespace.exports:function(moduleName,//@arg ModuleNameStringmoduleClosure){//@arg JavaScriptCodeString//@ret ModuleObjectvarwm=this;// GLOBAL.WebModule// https://github.com/uupaa/WebModule/wiki/SwitchModulePatternvaralias=wm[moduleName] ?(moduleName+"_") :moduleName;if(!wm[alias]){// secondary module already exported -> skipwm[alias]=moduleClosure(GLOBAL,wm,wm.VERIFY,wm.VERBOSE);// evaluate the module entity.wm.CODE[alias]=moduleClosure+"";// store to the container.if(wm.PUBLISH&&!GLOBAL[alias]){GLOBAL[alias]=wm[alias];// module publish to global namespace.}}returnwm[alias];}};
Clone this wiki locally

[8]ページ先頭

©2009-2025 Movatter.jp