JavaScript 避免全局定义变量和函数

var current = null;
function init() {}
function change() {}
function verify() {}
var myNameSpace = {
	current:null,
	init:function() {},
	change:function() {},
	verify:function() {}
}
myNameSpace = function() {
	var current = null;
	function init() {}
	function change() {}
	function verify() {}
}();
myNameSpace = function() {
	var current = null;
	function verify() {}
	return {
		init:function() {}
		change:function() {}
	}
}();
myNameSpace = function() {
	var current = null;
	function init() {}
	function change() {}
	function verify() {}
	return{
		init:init,
		change:change
	}
}();
myNameSpace = function() {
	var current = null;
	function init() {}
	function change() {}
	function verify() {}
	return{
		init:init,
		set:change
	}
}();
(function() {
	var current = null;
	function init() {}
	function change() {}
	function verify() {}
})();
var a = 1;
var b = 2;
(function() {
    var b = 3;
    a += b;
})();

a; // 4
b; // 2

var charsInBody = (function counter(elm) {
    if (elm.nodeType == 3) { // 文本节点
        return elm.nodeValue.length;
    }
    var count = 0;
    for (var i = 0, child; child = elm.childNodes[i]; i++) {
        count += counter(child);
    }
    return count;
})(document.body);

如上所提供的函数表达式的名称的作用域仅仅是该函数自身。这允许引擎去做更多的优化,并且这种实现更可读、友好。该名称也显示在调试器和一些堆栈跟踪中,节省了调试时的时间。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值