ホームページ > ウェブフロントエンド > jsチュートリアル > これについては Nodejs_node.js で詳しく説明します

これについては Nodejs_node.js で詳しく説明します

WBOY
リリース: 2016-05-16 15:07:56
オリジナル
1616 人が閲覧しました

以下の内容は、JavaScript のこれについてではなく、nodejs のこれに関するものであり、ブラウザの JavaScript のこれとは異なります。

グローバルの

これ

console.log(this); {}
this.num = 10;
console.log(this.num); 10
console.log(global.num); undefined
ログイン後にコピー

グローバル世界では、これはデフォルトで空のオブジェクトです。そして、グローバルでは、これはグローバル オブジェクトとは何の関係もありません。では、グローバルでは、これは正確に誰を指しているのでしょうか?これについては、この章の後半で説明します。

関数内の

this

function fn(){
  this.num = 10;
}
fn();
console.log(this); {}
console.log(this.num); undefined
console.log(global.num); 10

ログイン後にコピー

関数の this はグローバル オブジェクトを指しますが、これはグローバルの this とは異なります。簡単に言えば、関数の this で定義した変数は、この時点でグローバルに属性を追加することと同じです。 「それとは関係ありません」の「これ」はグローバルと同じです。

信じられない場合は、以下のコードを見て証明してください。

function fn(){
  function fn2(){
    this.age = 18;
  }
  fn2();
  console.log(this); global
  console.log(this.age); 18
  console.log(global.age); 18
}
fn();

ログイン後にコピー

そうです、関数内で this はグローバルを指しています。

コンストラクター内の

this

function Fn(){
  this.num = 998;
}
var fn = new Fn();
console.log(fn.num); 998
console.log(global.num); undefined
ログイン後にコピー

コンストラクターでは、これはグローバルではなくインスタンスを指します。

これについてはグローバル コンテキストで説明します。グローバル コンテキストでこれについて言えば、実際には Nodejs のスコープと関係があります。Nodejs のスコープについて詳しく知りたい場合は、を参照してください。 Nodejs のスコープの問題に関するディスカッション。この記事。

トピックに戻りますが、グローバル コンテキストでは、これは module.exports を指します。

this.num = 10;
console.log(module.exports); {num:10}
console.log(module.exports.num);
ログイン後にコピー

これがグローバル ビューで module.exports を指すのはなぜですか? それでは、まず module.exports について詳しく知る必要があります。機会があればモジュールについて説明します。後で

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート