演算子の優先順位JS

昨日は、同様の問題が発生した書かれたすべての被験者のため、これは理由をブログ書くことはあります。

 

その最初のGETVALの機能が強化されているので、この質問は、()の出力は、5で、書かれたコメントなど、すべての最初の外観を、取るために今、この関数の呼び出しf.getval出力2、

。F()GETVAL()このステップでは、理解することがより重要です。

最初のステップ:関数f内のコードの最初の実装、関数Fは使用GETVAL varステートメントが存在しないので、等、それでは、代わりに関数fのグローバルプライベートメンバ関数になるGETVALこれはつまり、ウィンドウオブジェクトである」=返します。

第二段階:この場合、F()GETVALは())(window.getvalなり、出力が1日です

 GETVAL第二の呼び出し:それはまた、出力される上記を参照。

新しいf.getval():「」新しいよりメンバーのアクセス優先順位ためには、我々は最初のお返しに=「新しい(f.getval)()、新しいFとして考えることができる、新しい実行するために、foo.getNameを行いました。例GETVAL出力2。

新しいF()GETVAL():.これはF()または新を実行するために主に躊躇している場合、新しい引数、第1新=「(新しいF())GETVALは、それがYesと呼ばれているため、です。 ()は、3の出力をFで独自のGETVALに見つけ、そのプロトタイプを見つける行かなかったので、F(上)GETVAL

新しい新しいF()GETVAL():.上記の新しいパラメータを優先ので、実行されます知ることができます。

最初のステップ:新しい(新しいF()GETVAL。)()

ステップ2:新しい((新しいF()).getval)()

最初の計算new foo()新しい()の計算でコンテンツを取得するため、取得のgetName、呼。

すなわち、新しい((新しいF()).getval)()=「新しい(f.prototype.getval)()ので、出力が3です。

参考記事:https://www.jianshu.com/p/412ccd8c386e

おすすめ

転載: www.cnblogs.com/ruilin/p/11695954.html