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 24, 2015 ·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();// published</script>

WebModule.js

WebModule version 0.5.33 時点の 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/EnvironmentDetectionGLOBAL.IN_EL=!/undefined/.test(typeof__dirname+typeof__filename);// ElectronGLOBAL.IN_BROWSER=!GLOBAL.IN_EL&&!GLOBAL.global&&"document"inGLOBAL;GLOBAL.IN_WORKER=!GLOBAL.IN_EL&&!GLOBAL.global&&"WorkerLocation"inGLOBAL;GLOBAL.IN_NODE=!GLOBAL.IN_EL&&!!GLOBAL.global&&!/native/.test(setTimeout);GLOBAL.IN_NW=!GLOBAL.IN_EL&&!!GLOBAL.global&&/native/.test(setTimeout);// --- validate and assert functions -----------------------//{@dev https://github.com/uupaa/WebModule/wiki/ValidateGLOBAL.$type=function(v,types){returnGLOBAL.Valid ?GLOBAL.Valid.type(v,types)  :true;};GLOBAL.$keys=function(v,keys){returnGLOBAL.Valid ?GLOBAL.Valid.keys(v,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;};//}@dev// --- WebModule -------------------------------------------GLOBAL.WebModule={publish:false,// WebModule based modules publish to global.closure:{},// module script stockerexports:function(moduleName,moduleClosure){varwm=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);// evaluate the module entitywm.closure[alias]=moduleClosure+"";// stockif(wm.publish&&!GLOBAL[alias]){GLOBAL[alias]=wm[alias];// publish to global}}returnwm[alias];}};
Clone this wiki locally

[8]ページ先頭

©2009-2025 Movatter.jp