简单js代码封装

简单js代码封装

关于代码封装,首先举一个常见的例子

function test()
{
this.name='test';
this.getname=function(){
console.log(this.name)
}
}
var T=new test();//创建实例化对象
console.log(T.name);//调用属性
T.getname();//调用方法

这是一个很简单的函数封装,可以通过function隔离作用域,防止同名属性的污染。但是在某些应用场景中还是有一些问题,那么我们看下下一段代码。

(function(window){
var name = 'test2';
var getname = function(){
console.log(name);
};
//暴露getname方法
window.getname = getname;
}(window));

getname();//调用方法

上面这段代码使用的是IIFE: Immediately Invoked Function Expression,意为立即调用的函数表达式,也就是说,声明函数的同时立即调用这个函数。

我们可以很明显的看到,使用IIFE,在调用getname()是不用创建一个实例化对象的,同时我们可以控制想要暴露出去的属性和方法。

因此,根据使用场景的不同,我们可以灵活的选择使用不同的代码封装方法。

你可能感兴趣的:(前端js)