学校が始まったのと、触っていくにつれてTitaniumが銀の弾丸ではない事が分かってきて、ペースダウンしてしまっているのですが、一応継続してTitaniumの習得を試みています。
表題の件なのですが、Titaniumの1.8以降ではシングルコンテキストなコーディング作法というのが推奨されています。その作法ではrequire関数でモジュールをロードします。まぁrequireを使っている分にはあまり疑問も無かったのですが、先日試してみた軽量ORMのjoliに含まれていた以下のコードを見て疑問が湧いてきました。
/** * In case joli.js is loaded as a CommonJS module * var joli = require('joli').connect('your_database_name'); * var joli = require('joli').connect('your_database_name', '/path/to/database.sqlite'); */ if (typeof exports === 'object' && exports) { exports.connect = function(database, file) { var joli = joliCreator(); if (database) { if (file) { joli.connection = new joli.Connection(database, file); } else { joli.connection = new joli.Connection(database); } } return joli; }; }
CommonJSモジュールって何やっけ?とか、そもそもexportsって何なん?とかexportsとmodule.exportsって何が違うん?という事ですね。
Continue reading “[Titanium勉強日記 6] CommonJSモジュールとrequireについて調べた”