Water Sunlight

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

ユーザ用ツール

サイト用ツール


js:module

差分

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

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

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
js:module [2021/06/16 10:09]
tanaka
js:module [2021/07/05 10:36] (現在)
y2sunlight [グローバルスコープに関する注意]
行 149: 行 149:
  
 モジュールの機能は単独のスクリプトのスコープに対してインポートされます。インポートされた機能はインポートしたスクリプトの内部からしかアクセスできません。即ち、インポートされた機能はグローバルスコープから利用することはできません。 モジュールの機能は単独のスクリプトのスコープに対してインポートされます。インポートされた機能はインポートしたスクリプトの内部からしかアクセスできません。即ち、インポートされた機能はグローバルスコープから利用することはできません。
 +
 +また、モジュールの場合、自動的に [[https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Strict_mode|Strict モード]]になり、var命令の省略は禁止されます。
  
 <sxh html;title:index.html> <sxh html;title:index.html>
行 160: 行 162:
   <script type="module" src="main.js"></script>   <script type="module" src="main.js"></script>
   <script>   <script>
-    console.log(abc_school.name);+    // local_schoolはモジュールの内部からしかアクセスできない 
 +    console.log(local_school.name);    // NG 
 +    foo_school = new School('Foo School' //NG
   </script>   </script>
 </body> </body>
行 166: 行 170:
 </sxh> </sxh>
  
 +<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.1623805768.txt.gz · 最終更新: 2021/06/16 10:09 by tanaka