私は数日前の面接中にこれを使用しましたが、面接官は私の理解が少し間違っていると言ったので、戻ってきていくつかの本やブログを読み、いくつかのテストを行ったところ、私の理解は確かに間違っていたことがわかりました。 >
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
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
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
お父さんの場合は、showが指す関数がグローバル環境で定義されているため、showに値が見つからないので、それが存在する環境で探します。を定義し、次に地球環境の価値を見つけます。ここで誤解がある場合は、誰かが指摘してくれると幸いです。