只是快速提问,有没有办法调用函数并同时修改变量?
拿这个,<button onclick="change(); var con = true">click me</button>
<script>
function change() {
while (con == true) {
var x = event.clientX;
var y = event.clientY;
}
//do some more magical stuff
}
</script>
基本上我只想在条件为真时循环while循环,并且同时做一些更神奇的东西,这是可能的吗?
答案 0 :(得分:2)
试试这个
<security-constraint>
<web-resource-collection>
<web-resource-name>app1</web-resource-name>
<url-pattern>/webservice/*</url-pattern>
</web-resource-collection>
</security-constraint>
<security-constraint>
<web-resource-collection>
<web-resource-name>Protected Context</web-resource-name>
<url-pattern>/*</url-pattern>
</web-resource-collection>
<user-data-constraint>
<transport-guarantee>CONFIDENTIAL</transport-guarantee>
</user-data-constraint>
</security-constraint>
答案 1 :(得分:0)
使用示例代码中显示的while
或for
会在调用时锁定客户端的浏览器。相反,请考虑使用回调方式,例如与setTimeout
使用setTimeout
包装函数,返回切换函数
function toggleableFn(fn, rate) {
let timeout,
run = false,
loop;
function looper(args) {
if (!run) return; // double safety
fn.apply(this, args);
timeout = window.setTimeout(loop, rate);
}
return (...args) => {
run = !run;
if (run) {
loop = looper.bind(this, args);
loop();
return true
}
else {
window.clearTimeout(timeout);
}
return false;
};
}
var rep = toggleableFn((x, y) => console.log(x, y), 1e3);
rep('foo', 'bar'); // true
// logs "foo" "bar" every second until you toggle with `rep(); // false`
答案 2 :(得分:-1)
我不推荐这种做法。并不是说它不合适,但为了让所有代码都在正确的位置,我将definitelly将所有代码放在函数中。
并且 - 没有冒犯 - 这个编码实践有点像旧学校&#34;,尝试学习例如jQuery,所有的东西都希望更清楚然后