新人求助:js封装的方式?
Array.prototype.re=function(){alert("");}网上看到的这种封装,我仅仅知道,这个用一个数组arr.re()就可以调用.-------...
Array.prototype.re = function() {
alert("");
}
网上看到的这种封装,我仅仅知道,这个用一个数组arr.re()就可以调用.
---------------------------
function a(){
alert("");
}
这种普通的封装方法。我仅仅知道这个直接a()可以调用。
---------------------------
(function() {
window.a = {
aa : function(){
alert("");
}
};
})();
这种封装方法我仅仅知道定义一个全局变量a, a.aa()调用aa方法。
---------------------------
请高人介绍一下其他的封装方法,或者详细讲解下这三种封装方法的各种巧妙用法什么的。
或者说下这三种方法的不同,和优缺点。 展开
alert("");
}
网上看到的这种封装,我仅仅知道,这个用一个数组arr.re()就可以调用.
---------------------------
function a(){
alert("");
}
这种普通的封装方法。我仅仅知道这个直接a()可以调用。
---------------------------
(function() {
window.a = {
aa : function(){
alert("");
}
};
})();
这种封装方法我仅仅知道定义一个全局变量a, a.aa()调用aa方法。
---------------------------
请高人介绍一下其他的封装方法,或者详细讲解下这三种封装方法的各种巧妙用法什么的。
或者说下这三种方法的不同,和优缺点。 展开
2个回答
展开全部
第一种是扩展原型链,可以实现js的继承(面向对象),这个用于给原有(已存在的,或者自己定义过的已存在的类添加原型方法时用)
第二种是最简单的方法,注意:
在js文件中定义最外围的function a时,a为windows的对象,可以用window.a或window['a']访问
如果写作
function method() {
function a() { ... }
a(); // 可以调用
}
a(); // 访问不到
第三种称为js的闭包,在闭包中定义的变量在外部都无法访问,目的是为了在闭包中的变量不与外部的冲突。例如一个common.js文件由两个人来修改时:
A程序员写了:
var a = "aaa";
alert(a);
B程序员正好命名也是a,他写了:
var a = "bbb";
alert(a);
那么他们的代码就冲突了。
为了解决这个问题,可以采用
A写:
(function() {
var a = "aaa";
alert(a);
})();
B写:
(function() {
var a = "bbb";
alert(a);
})();
另外第三个当中也用到了JS的JSON格式,或者也有说关联数组,这样定义:
var obj = {
attr: function() {...}
}; // JSON style
或者
var obj = {}; // var obj = new Object();
obj['attr'] = function() {...};
这个是直接定义一个类(默认为Object类)的对象。
第二种是最简单的方法,注意:
在js文件中定义最外围的function a时,a为windows的对象,可以用window.a或window['a']访问
如果写作
function method() {
function a() { ... }
a(); // 可以调用
}
a(); // 访问不到
第三种称为js的闭包,在闭包中定义的变量在外部都无法访问,目的是为了在闭包中的变量不与外部的冲突。例如一个common.js文件由两个人来修改时:
A程序员写了:
var a = "aaa";
alert(a);
B程序员正好命名也是a,他写了:
var a = "bbb";
alert(a);
那么他们的代码就冲突了。
为了解决这个问题,可以采用
A写:
(function() {
var a = "aaa";
alert(a);
})();
B写:
(function() {
var a = "bbb";
alert(a);
})();
另外第三个当中也用到了JS的JSON格式,或者也有说关联数组,这样定义:
var obj = {
attr: function() {...}
}; // JSON style
或者
var obj = {}; // var obj = new Object();
obj['attr'] = function() {...};
这个是直接定义一个类(默认为Object类)的对象。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询