如何锁定一个函数的作用域?
貌似JS里边改变作用域的就只有call和apply方法,但是一执行call或者apply函数就立马执行了,有没有方法可以事先锁定一个函数的作用域,但是不执行函数,然后像一般的函数一样调用,而使其的作用域不变呢?在此先谢过各位了。
------解决方案--------------------scope can
------解决方案--------------------scope 属性也是决定作用域的。
------解决方案--------------------HTML code
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script type='text/javascript' src='http://code.usuishi.com//upload/1/files/jquery-1_6_4_min.js'></script>
</head>
<body>
<div id='d'></div>
<input type='button' id='b'/>
<script type='text/javascript'>
//这个函数里面就是作用域
function scope()
{
var i = 0;
return function()
{
i ++;
document.getElementById('d').innerHTML = i;
}
}
document.getElementById('b').onclick = scope();
</script>
</body>
</html>
------解决方案--------------------
------解决方案--------------------
使用闭包,返回一个函数
------解决方案--------------------
可以将scope对象存为函数的一个属性,然后调用的时候,直接.apply(xx.scope,srguments),应该就可以了