在JavaScript中同时调用函数和修改变量

时间:2016-04-21 06:50:25

标签: javascript html5

只是快速提问,有没有办法调用函数并同时修改变量? 拿这个,<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循环,并且同时做一些更神奇的东西,这是可能的吗?

3 个答案:

答案 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)

使用示例代码中显示的whilefor会在调用时锁定客户端的浏览器。相反,请考虑使用回调方式,例如与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,所有的东西都希望更清楚然后