javascript - js函数调用
伊谢尔伦
伊谢尔伦 2017-04-10 16:04:05
[JavaScript讨论组]

我先在html中调用自执行函数内部的方法,怎么办? 例如:

<p onclick="foo()"></p>

<script>
(function(){

   function foo(){
        alert('xx');
     }

}()

</script>

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回复(2)
迷茫

我感觉这样会比较好点,将全局变量window传进去比较好点:

(function(global){
  global.foo = foo;

  function foo(){
     alert('xx');
  }
})(window);
PHP中文网

我去。。题主,你确定要采纳你现在采纳的那个答案么??
我先给你分析一下我的见解:

<p onclick="foo()"></p>
<script>
(function(){
  foo = function (){
        alert('xx');
  }
}()
</script>

这种方式意思是(按运行先后顺序):

  1. 创建了一个函数对象

  2. 声明了一个全局的函数:foo

  3. foo指向之前创建的函数对象
    我先说的意思是,这时的foo是全局指针,也就是说,对全局环境有污染。试想你的页面不会只有这一个element有个事件吧?而且按编程思想也不应该把元素的点击事件做成全局的,做成全局的应该是common级别的东西。

他的第二个方案其实也是一回事,只不过把闭包去掉了而已。

===========================================================
我觉得,而且也是主流的做法是:

<p id='abc'></p>
document.getElementById('abc').onclick = function() {alert('xx');};

当然,我更偏向于使用比较成熟的脚本库(比如jQuery):

$('#abc').click(function() {
  alert(xx);
});

当然还有更多的写法,基于效率。不过这都是后话,题主可以循序渐进。加油

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号