我不太确定<script>标签之间发生了什么.例如,以下内容在Chrome中提供了参考错误和类型错误:
<html>
<head>
<script type="text/javascript">
T.prototype.test = function() {
document.write("a");
}
</script>
<script type="text/javascript">
function T() {}
var v = new T();
v.test();
</script>
</head>
<body>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
但这有效:
<html>
<head>
<script type="text/javascript">
</script>
<script type="text/javascript">
T.prototype.test = function() {
document.write("a");
}
function T() {}
var v = new T();
v.test();
</script>
</head>
<body>
</body>
</html>
Run Code Online (Sandbox Code Playgroud) 我想使用OpenMP以并行方式遍历std :: list中的所有元素.循环应该能够改变列表的元素.有一个简单的解决方案吗?当迭代器是随机访问迭代器时,似乎OpenMP 3.0支持并行for循环,但不是其他.无论如何,我更喜欢使用OpenMP 2.0,因为我无法完全控制哪些编译器可供我使用.
如果我的容器是矢量,我可能会使用:
#pragma omp parallel for
for (auto it = v.begin(); it != v.end(); ++it) {
it->process();
}
Run Code Online (Sandbox Code Playgroud)
我知道我可以将列表复制到矢量中,执行循环,然后将所有内容复制回来.但是,如果可能的话,我想避免这种复杂性和开销.
假设我在C或C++中有以下内容:
#include <math.h>
#define ROWS 15
#define COLS 16
#define COEFF 0.15
#define NODES (ROWS*COLS)
#define A_CONSTANT (COEFF*(sqrt(NODES)))
Run Code Online (Sandbox Code Playgroud)
然后,我去使用NODES和A_CONSTANT内许多嵌套循环深的地方(即多次使用).显然,两者都有可以在编译时确定的数值,但编译器实际上是这样做的吗?在运行时,CPU是否必须在15*16每次看到时进行评估NODES,还是编译器静态放置240?同样,CPU每次看到时都必须评估平方根A_CONSTANT吗?
我的猜测是ROWS*COLS乘法被优化了,但没有别的.整数乘法内置于语言中,但sqrt是一个库函数.如果确实是这种情况,有没有办法得到一个等效的幻数,以便A_CONSTANT在运行时只计算一次平方根?
我有一个setInterval显示动画的循环调用。
当我clearInterval响应用户输入时,队列中可能有一个或多个循环回调。如果我直接在clearInterval语句之后放置一个函数调用,则函数调用首先完成(将某些内容打印到屏幕上),然后执行排队循环回调,删除我想要打印的内容。
请参阅下面的代码。
function loop() {
// print something to screen
}
var timer = setInterval(loop(), 30);
canvas.onkeypress = function (event) {
clearInterval(timer);
// print something else to screen
}
Run Code Online (Sandbox Code Playgroud)
处理这个问题的最佳方法是什么?把延迟放在// print something else to screen? 在循环内进行新打印?
编辑:感谢您的回答。为了将来参考,我的问题是触发额外打印的事件被隐藏在循环中,因此一旦执行,控制权将交还给未完成的循环,然后将其覆盖。干杯。
我在 Google Chrome 控制台中尝试了以下操作:
> function t1(f) { return f(1); }
> function t2() { return this+1; }
> t1(t2.call)
TypeError: object is not a function
Run Code Online (Sandbox Code Playgroud)
为什么这不起作用?有没有办法定义一个函数来代替 Function.prototype.call 可以在这里工作?
javascript ×3
c++ ×2
callback ×2
c ×1
canvas ×1
function ×1
html ×1
list ×1
openmp ×1
setinterval ×1