我是一個開發小型Web應用程序的新手,使用HTML,JavaScript(Angular 1.5.0)& CSS。我正在使用Grunt來處理jslint,縮小我的JavaScript和CSS文件。我的Javascript代碼包含由d3.js創建的SVG圖像。如何重寫此Javascript代碼以避免JSHint警告?
我目前正從jshint以下警告:
line 1932 col 32 Don't make functions within a loop.
我怎麼可以重寫下面的代碼,以消除此警告?
Line #1924 for (var j = 0; j <= 5; j++) {
Line #1925 var myVarX = j * 100;
Line #1926 var myVarY = j * 200;
Line #1927 var myText = self.svgContainer.append("text")
Line #1928 .attr("x", myVarX)
Line #1929 .attr("y", myVarY)
Line #1930 .text("Hello World")
Line #1931 .attr("fill", "black")
Line #1932 .attr("transform", function(d){
Line #1933 var bb = this.getBBox();
Line #1934 leftBoundary = bb.x + (bb.width/(-2));
Line #1935 return "translate(" + (bb.width/(-2)) + ", 0)";
Line #1936 }
Line #1937 )
Line #1938 if (leftBoundary > centerX + 5)
Line #1939 myText.style("display", "block");
Line #1940 else
Line #1941 myText.remove();
Line #1942 }
在循環外定義它並使用'.attr('transform',NAMEOFYOURFUNCTION)'調用它。 – str
jshint thows警告,因爲每個循環迭代新函數都被創建,並且它對性能有不同的影響。 @str有權利,只需在循環範圍外定義此函數,並將其稱爲 –