前段时间我听说最好将代码包装在一个大对象中作为命名空间,以减少全局命名空间的混乱并促进库的导出,所以我尝试了这个.
var wrapper = {
foo: function(){
return 42;
},
bar: this.foo()
};
Run Code Online (Sandbox Code Playgroud)
它失败了,声称"foo没有定义".在完成对象声明之前调用方法可能不好,所以我移动了bar,它起作用了.
var wrapper = {
foo: function(){
return 42;
},
};
wrapper.bar = wrapper.foo();
Run Code Online (Sandbox Code Playgroud)
我觉得这可能会变得有点难看,特别是对于嵌套的命名空间等等,那么有没有任何变通办法让人很难同时看到所有包装器的成员?
我希望这个Java程序能够传输10001个素数,但它莫名其妙地决定将16标记为素数.
这里的算法只是保持素数的运行计数,并检查每个新数字以查看它是否可被任何小于它的素数整除.如果不是,则将其添加到数组primes []中,该数字显示在控制台上,然后该过程继续,直到primes[ ]满.
public static void main(String[] args){
int[] primes = new int[10001];
int primeCount = 1;
int testNumber = 3;
primes[0] = 2;
while(primeCount < 10001){
for (int i = 0; i < primeCount; i++){
if (testNumber % primes[i] == 0){
i = 0;
testNumber++;
}
}
primes[primeCount] = testNumber;
System.out.println(testNumber);
primeCount++;
testNumber++;
}
}
Run Code Online (Sandbox Code Playgroud)
控制台读数:
3 5 7 11 13 16 17 19 . . .
除了16 ......任何想法之外,其他一切看起来都是有序的吗?