JS 封装
一。全局变量
定义:三种
(1) var test = 'some value';
(2) window.test = 'some value';
(3) (function () {
var a;
test = 'some value';
})(); //在函数中不写var的,就是全局。
注意:
function todo() {
var a = test = 'some value';
}
//在js中。a是局部变量, 而test是全局变量。
function todo() {
var a = '11',
b = 'ab';
test = 'some value';
}
全局变量,可以在任何地方做操作。可能会产生命名冲突。程序不稳定。调试困难。
二,信息隐藏。
面向对象的封装,有一些公有方法,和一些私有方法。
//使用函数封装
function A() {
this.a = 'a';
this.b = 'b';
this.step1 = function () {
;
}
this.step2 = function () {
;
}
}
//使用原型封装
function B() {
this.a = 'a';
this.b = 'b';
}
var pro = A.prototype;
pro.step1 = function () {
;
}
pro.step2 = function () {
;
}
有问题。公有私有不分。访问权限相同。没有达到信息隐藏的目的。
达到信息隐藏的方式。外界也可以操作
function A() {
var config = ['a', 'b', 'c'];
this.getConfig = function () {
return config;
}
}
var pro = A.prototype;
pro._step1 = function () {
;
}
pro._step2 = function () {
;
}
继承:
类继承:
组合继承,就不写了。
原型继承:这个很少用,写一下。
(function () {
var proto = {
action1 : function () {
;
},
action2 : function () {
}
}
var obj = Object.create(proto);
}) ();