前几天在一个著名网站看到一个有趣的效果,然后自己着手试了试.之后看了页面的原码,被代码的简短和精细吓到(也可能是少见多怪).
代码大致如下:
(function() {
$(function() {
return $(".XXXX-XX").click(function() {
return $(this).parent(".XXX").toggleClass("new");
});
});
}).call(this);
虽然代码的写法都很熟悉,可是仔细看了之后又觉得好陌生.问题集中在:
1.(function(){/**function body**/}).call(this)
是怎么执行的?这样写有什么好处?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
(function(){/**function body**/}).call(this)
是怎么执行的?这样写有什么好处?
这是Javascript的自执行函数写法, 函数声明后立即执行. 并且设置函数执行时context为this, 这里的this因执行环境会有所不同, 浏览器环境应该是window.
但是看这代码没必要用个call(this), 感觉下面的写法就可以了:
(function() {
$(function() {
return $(".XXXX-XX").click(function() {
return $(this).parent(".XXX").toggleClass("new");
});
});
})();
2个return的作用,为什么要return?,return了什么?.
两个return也是可以不存在的, 不管里return了什么, 没人接收你的return值, 何必return呢?