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); }) ();

 

原文地址:https://www.cnblogs.com/hgonlywj/p/4857839.html