Water Sunlight

軽量プログラミングの文法 - JavaScript/Python

ユーザ用ツール

サイト用ツール


js:module

差分

このページの2つのバージョン間の差分を表示します。

この比較画面にリンクする

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
js:module [2021/06/16 10:31]
tanaka [グローバルスコープに関する注意]
js:module [2021/07/05 10:36] (現在)
y2sunlight [グローバルスコープに関する注意]
行 150: 行 150:
 モジュールの機能は単独のスクリプトのスコープに対してインポートされます。インポートされた機能はインポートしたスクリプトの内部からしかアクセスできません。即ち、インポートされた機能はグローバルスコープから利用することはできません。 モジュールの機能は単独のスクリプトのスコープに対してインポートされます。インポートされた機能はインポートしたスクリプトの内部からしかアクセスできません。即ち、インポートされた機能はグローバルスコープから利用することはできません。
  
-<sxh javascript;title:main.js> +また、モジュールの場合、自動的に [[https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Strict_mode|Strict モード]]になり、var命令の省略は禁止されます。
-mport { School } from './school.js' +
- +
-var local_school = new School('Local School'); +
-console.log(local_school.name);  // OK +
- +
-// global_school = new School('Global School'); +
-// console.log(global_school.name); NG +
-</sxh>+
  
 <sxh html;title:index.html> <sxh html;title:index.html>
行 170: 行 162:
   <script type="module" src="main.js"></script>   <script type="module" src="main.js"></script>
   <script>   <script>
-    console.log(abc_school.name);    // NG+    // local_schoolはモジュールの内部からしかアクセスできない 
 +    console.log(local_school.name);    // NG
     foo_school = new School('Foo School' //NG     foo_school = new School('Foo School' //NG
   </script>   </script>
行 176: 行 169:
 </html> </html>
 </sxh> </sxh>
-> TODO:module内ではグローバル変数が使えない+ 
 +<sxh javascript;title:main.js> 
 +import { School } from './school.js' 
 + 
 +var local_school = new School('Local School'); 
 +console.log(local_school.name);  // OK 
 + 
 +// モジュール内ではグローバルスコープを持つ変数が作成できない。 
 +// global_school = new School('Global School'); 
 +// console.log(global_school.name); NG 
 +</sxh> 
 + 
 +<sxh javascript;title:school.js> 
 +export class School { 
 +    constructor(name) { 
 +        // プロパティの定義 
 +        this.name = name; 
 +    } 
 +
 +</sxh> 
 + 
 +\\
js/module.1623807090.txt.gz · 最終更新: 2021/06/16 10:31 by tanaka