Javascript_基礎知識で使い方を詳しく解説

WBOY
リリース: 2016-05-16 16:35:45
オリジナル
1274 人が閲覧しました

私は数日前の面接中にこれを使用しましたが、面接官は私の理解が少し間違っていると言ったので、戻ってきていくつかの本やブログを読み、いくつかのテストを行ったところ、私の理解は確かに間違っていたことがわかりました。 >

1. グローバル変数

は最も一般的に使用されるものです。これは関数内で呼び出されます。実際にはグローバル変数

です。

var value="0"; function mei(){ 
 var value="1"; 
 console.log(this.value); //0  console.log(value);   //1 } 
mei();

ログイン後にコピー
これはグローバル

を指しているため、0 を出力します。

2.コンストラクター

これは私がよく知っている使用法です。新しいオブジェクトを作成した後、これは新しいオブジェクトを指します。

var value="window"; function mei(){ 
 this.value=1; 
 this.show=function(){ 
  console.log(this.value) 
 } 
} var m=new mei(); 
console.log(m.value);  //1 m.show();        //1
ログイン後にコピー
出力がウィンドウではなく 1 であることがわかります。コンストラクターにより、これはすでにグローバル変数ではなく新しいオブジェクトを指していることがわかります。

3.電話して応募してください

私の呼び出しと適用ブログから例を直接借用してください

 var p="456"; 
 function f1(){ 
  this.p="123"; 
 } 
 function f2() { 
  console.log(this.p); 
 } 
 f2();       //456  f2.call(f1());  //123  f2.apply(f1());  //123

ログイン後にコピー
最初の行は 456 を出力します。これはグローバルな状況を示しています。次の 123 は、call または apply を使用した後、f2 の this が f1 を指し、f1 の p が 123 であるためです。 、その記事をクリックしてください ブログ

4. 関数はオブジェクトのメソッドとして呼び出されます (ここで間違っていました)

いくつかのメソッドを含むオブジェクトを書くように言われました。突然グローバル変数を定義し、それをオブジェクトのメソッドで呼び出すために使用しました。面接官は、これは何ですかと尋ねました。私は、この方法はめったに使用しないので、ウィンドウにするべきだと言いました。新しいかコールだけで方向が変わると思いました。彼は、それは間違いで、戻って自分の目で確認するように言いました。 、郵便番号

を間違っていました。

var value="father"; function mei(){} 
mei.value="child"; 
mei.get=function(){console.log(this.value)}; 
mei.show=function(){console.log(value)}; 
mei.get();   //child mei.show();  //father

ログイン後にコピー
meiのメソッドとしてgetを呼び出しているので、ここではmei.valueを指しているので、childが出力されます

お父さんの場合は、showが指す関数がグローバル環境で定義されているため、showに値が見つからないので、それが存在する環境で探します。を定義し、次に地球環境の価値を見つけます。ここで誤解がある場合は、誰かが指摘してくれると幸いです。

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