全局变量会削弱程序的灵活性。所以在javascript中,一个很关键的问题是要控制和避免全局变量.(减少全局污染)
方法一,在应用中只创建一个全局变量,然后把多个全局变量整理到这个命名空间下。
这样可以减少和其他应用程序、组建、类库产生耦合。
方法二,使用闭包进行信息隐藏,
闭包
内部函数可以访问外部函数的参数和变量。除了this 和 arguments
function Test(num) {
this.value = 100;
var that = this;
var inner = function() {
alert(this +"--"+that);
alert(that.value);
alert(num);
}
inner();
}
new Test(123);
var myObject = function() {
var value = 100;
return {
increment : function (num) {
value += typeof num === 'number' ? num : 1;
},
getValue : function() {
return value;
}
}
}();
alert(myObject.getValue());
JavaScript中的继承
使用伪类 :
var Person = function(name) {
this.name=name;
}
Person.prototype.getName = function(){
return this.name;
}
var person = new Person("lll");
alert(person.getName());
var Student = function(subject) {
this.subject = subject;
}
Student.prototype = person;
Student.prototype.getInfo = function() {
return this.name +"--"+this.subject;
}
var student1 = new Student("math");
alert(student1.getInfo());
var student2= new Student("english");
alert(student2.getInfo());
原型(prototype) :(没有搞懂)
构造方法
function Person(id,name,age,address){};
更好的方式: 用对象封装参数
function Person({id:id,name:name,age:age,address:address}){};