この問題に関する最近の研究では要約を作る、エッセイを書くために自分自身を指摘
1.一般的には、この機能
その理由は、ウィンドウ内の最大の目的は、()関数呼び出しが(window.fnに相当)、このすべての点ウィンドウに直接FN、ウィンドウで、実行されず、関数が呼び出されていない、単純です
2.機能でこの割り当て
VARのFn = 関数(){
にconsole.log(この); //出力結果ウィンドウ } のFn()
これは実際には、上記の関数が変数に割り当てられているが、監督者呼び出し、同じ質問です?このポイントは、fn内で機能しない理由、それFN等号、と接続されていないが、あなたは直接FN印刷されない場合ブラケットは、出力は、関数全体の内容であり、そしてそれはグローバル状態で呼び出されるので、実行時に、またはコールにその機能を示す、ダイレクトプリントにこれを指していない括弧、もちろん、このウィンドウの実装であります
3.今回のコンストラクタ
関数スター(のuname){ この .uname = のuname; にconsole.log(この); } スター(); // コンストラクタは、オブジェクトテンプレート自体であるため、これは、実際には意味しない VAR jsnow = 新しい新しいスター(「ハクチョウゲ」); にconsole.log(jsnow){//のunameスター: "ハクチョウゲ"}
出力、ポイントオブジェクトがインスタンス化されています
方法4.this時には、コンストラクタ、この時点
関数スター(のuname){ この .uname = のuname; この .sing = 関数(){ にconsole.log(この); // 出力スター{のuname: "ハクチョウゲ"、歌う:ƒ} } } VAR jsnow = 新しい新しいスター(「月に雪」); jsnow.sing()
コンストラクタこの時点では、まだインスタンス化されたオブジェクト
プロトタイプ方法5.、場合プラグ
関数のFn(のuname){ この .uname = のuname; } Fn.prototype.sing = 関数(){ にconsole.log(この); //出力のFn {のuname: "Liuyuexue"} } VAR jsnow = 新しい新規のFn( "6月中の雪" ) jsnow.sing()
これは、インスタンス化されるオブジェクトを参照します
6.オブジェクトプラグのプロトタイプ法を用いて
関数のFn(のuname){ この .uname = のuname; } Fn.prototype = { シング:関数(){ にconsole.log(この); }、 ダンス:関数(){ にconsole.log( "ちょうどSO SO" ) } } のvar jsnow = 新新のFn( "Liuyuexue" ) jsnow.sing() // 出力はまだインスタンス化されたオブジェクトの jsnow.dance()
戻り値と値との関数戻り、単純なデータ型であり、7
VARのFn = 関数(){ この .age = 18 。 リターン 1 ; } VARの jsnow = 新規のFn()。 console.log(jsnow.age)。//输出18
偉大な神は、この辺りの戻り値は、実際に何があり、差がない場合、それは出力結果には影響しません、単純なデータ型であることを説明しました
8.複合データ型の戻り値(I相を学んでいた)、その関数距離
VARのFn = 関数(){ この .age = 18 。 リターン ヌル。 } VARの jsnow = 新規のFn()。 console.log(jsnow.age)。 // 18
戻り値は、実際には18になりました...(特別な思い出が聖歌)
、私は説明できない理由については、ヌルは、それの特殊なオブジェクトであるため、おそらく、正直に言うと、私はデザインがターゲットになるときはnullが、当然のことながら、ライン上の心の中で結論として、いくつかのものが、なぜ追求する必要はありませんなぜ困惑しています。そうでない場合、私は中国の人々が書き込みコードに英語を使用する理由をお願いしたいと思います
複合データ型の戻り値が、時間underfind値を返す場合、この点はオブジェクトにもはや点がインスタンス化されていない、変更されたことを意味するが、複合データ型が返さ
**********
それは、オブジェクトに来るときもちろん、ヌル戻り値は、実際のオブジェクトである、typeof演算時間を印刷し、特別なオブジェクト、ヌルと考えていました
console.log(typeof演算 はnull) // オブジェクト
その後はnullを返すときにオブジェクトトライ