扫码关注官方订阅号
我先在html中调用自执行函数内部的方法,怎么办? 例如:
<p onclick="foo()"></p> <script> (function(){ function foo(){ alert('xx'); } }()
</script>
小伙看你根骨奇佳,潜力无限,来学PHP伐。
我感觉这样会比较好点,将全局变量window传进去比较好点:
(function(global){ global.foo = foo; function foo(){ alert('xx'); } })(window);
我去。。题主,你确定要采纳你现在采纳的那个答案么??我先给你分析一下我的见解:
<p onclick="foo()"></p> <script> (function(){ foo = function (){ alert('xx'); } }() </script>
这种方式意思是(按运行先后顺序):
创建了一个函数对象
声明了一个全局的函数:foo
foo
将foo指向之前创建的函数对象我先说的意思是,这时的foo是全局指针,也就是说,对全局环境有污染。试想你的页面不会只有这一个element有个事件吧?而且按编程思想也不应该把元素的点击事件做成全局的,做成全局的应该是common级别的东西。
element
common
他的第二个方案其实也是一回事,只不过把闭包去掉了而已。
===========================================================我觉得,而且也是主流的做法是:
<p id='abc'></p>
document.getElementById('abc').onclick = function() {alert('xx');};
当然,我更偏向于使用比较成熟的脚本库(比如jQuery):
$('#abc').click(function() { alert(xx); });
当然还有更多的写法,基于效率。不过这都是后话,题主可以循序渐进。加油
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
扫描下载App
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
我感觉这样会比较好点,将全局变量window传进去比较好点:
我去。。题主,你确定要采纳你现在采纳的那个答案么??
我先给你分析一下我的见解:
这种方式意思是(按运行先后顺序):
创建了一个函数对象
声明了一个全局的函数:
foo
将
foo
指向之前创建的函数对象我先说的意思是,这时的
foo
是全局指针,也就是说,对全局环境有污染。试想你的页面不会只有这一个element
有个事件吧?而且按编程思想也不应该把元素的点击事件做成全局的,做成全局的应该是common
级别的东西。他的第二个方案其实也是一回事,只不过把闭包去掉了而已。
===========================================================
我觉得,而且也是主流的做法是:
当然,我更偏向于使用比较成熟的脚本库(比如jQuery):
当然还有更多的写法,基于效率。不过这都是后话,题主可以循序渐进。加油