2016-07-02 14 views
0

私は自分のJavascriptコードをより良く構築するために取り組んでいます。そして、より多くの名前空間を利用しようとしています。私はJSLintを使用して私をよりきれいなコードに導く手助けをしています。 私はJSLintを介してこれを実行すると:それは私に語っJavascript構造体:範囲外の変数。ネームスペース

'use strict'; 
var app = { 
    start : function(){ 
     var x = 1; 
     x += 1; 
    }, 

    restart : function(){ 
     app.start(); 
    } 
}; 

appは適用範囲外であること。

私は実際にはthis.start();の代わりにapp.start();を書くのが好きです。なぜなら、しばしば関数が関係していることをはるかに表現力があるからです。

JSLintは可変範囲について私が知らないことを知っていますか?私は自分のコードが動作することを知っていますが、それは何とかしていませんか?そして、どうすればいいのですか?

ありがとうございます!

+0

はjshint.com – charlietfl

+0

@charlietflああ、クールを通してそれを実行している幸せかもしれません!それはあなたに素晴らしいツールである非常に詳細なレポートです。私はまだ潜在的な知恵JSLintが持つことができる、私はしかし、についてはわからないことを心配しています:) – user3307017

答えて

0

変数を最初に宣言すると、この警告が表示されなくなります。

'use strict'; 
var app; 

app = { 
    start : function(){ 
     var x = 1; 
     x += 1; 
    }, 

    restart : function(){ 
     app.start(); 
    } 
}; 
+0

しかし、何を言っているJSLintは何ですか? 変数を宣言してから何かを割り当てるのとは機能的に違いはありません。 – user3307017

+0

変数を宣言して宣言内から変数を使用すると、好きではないと思います。無効なJSを意味するわけではなく、場合によってはエラーにつながる可能性があります。 – Damon

+0

どのような場合ですか? :) – user3307017