[Javascript] Using IIFE to improve code performance

Example 1

Before

function addEvent(ele, eventName, handler) {
	if (ele.addEventListener) {
		ele.addEventListener(eventName, handler);
	} else if (ele.attachEvent) {
		ele.attachEvent('on' + eventName, handler);
	} else {
		ele['on' + eventName] = handler;
	}
}

After

var addEvent = (function () {
	if (ele.addEventListener) {
		return function (ele, eventName, handler) {
			ele.addEventListener(eventName, handler);
		};
	} else if (ele.attachEvent) {
		return function (ele, eventName, handler) {
			ele.attachEvent('on' + eventName, handler);
		};
	} else {
		return function (ele, eventName, handler) {
			ele['on' + eventName] = handler;
		};
	}
})();

 

Example 2

Before

function request(options) {
	if (typeof window !== 'undefined') {
		// Browser-side AJAX
	} else {
		// Node.js HTTP
	}
}

After

var request = (function () {
	if (typeof window !== 'undefined') {
		return function (options) {
			// Browser-side AJAX
		};
	} else {
		return function (options) {
			// Node.js HTTP
		};
	}
})();

 

Example 3

Before

function removeSpace(str) {
	// Test Regex...
	return str.replace(/\s/g, '');
}

After

var removeSpace = (function () {
	var reg = /\s/g;
	return function (str) {
		return str.replace(reg, '');
	};
})();

You don't need to create a regobject everytime when running the function.

 

posted @   Zhentiw  阅读(6)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
历史上的今天:
2022-12-03 [Javascript Performance] Optimisation and deoptimization
2022-12-03 [Javascript Performance] How to benchmark code performance
2022-12-03 [Typescript] 125. Extreme - Object Key Paths
2021-12-03 [AWS] Using EC2 Roles and Instance Profiles in AWS
2019-12-03 [Algorithm] 122. Best Time to Buy and Sell Stock II
2019-12-03 [ARIA] Create an Accessible Tooltip on a Text Input
2019-12-03 [Algorithm] 121. Best Time to Buy and Sell Stock
点击右上角即可分享
微信分享提示