不知道大家有没有一种感觉,那就是自己写的javascript代码虽然能完全解决工作上的需要,但是,一眼望去,too simple!!!简直就是一个傻子都能看懂的水平,于是,在工作之余,我开始去收集一些几乎在日常开发中未曾用过的javascript写法/有价值的javascript知识点,借此来提高自身javascript水平。
一、函数式编程与面向对象编程
<script>
/*函数式编程*/
function f1(){
var n=999;
nAdd=function(){
n+=1;
};
var f2 = function(){
console.log(n);
};
return f2;
}
var result=f1();
result(); // 999
nAdd();
result(); // 1000
/*面向对象编程1之json写法*/
var obj1 = {
n:999,
nAdd:function(){
this.n += 1;
},
getN:function(){
console.log(this.n);
}
};
obj1.getN();//999
obj1.nAdd();
obj1.getN();//1000
/*面向对象编程2之工厂模式*/
var obj2 = function(){
var obj = new Object;
obj.n = 999;
obj.nAdd = function(){
this.n += 1;
};
obj.getN = function(){
console.log(this.n);
}
return obj;
};
var objins = new obj2();
objins.getN();//999
objins.nAdd();
objins.getN();//1000
/*面向对象编程3之原型prototype*/
function obj3(n) {
this.n = n;
}
obj3.prototype.nAdd = function() {
this.n+=1;
};
obj3.prototype.getN = function() {
console.log(this.n);
}
var objins2 = new obj3(999);
objins2.getN();//999
objins2.nAdd();
objins2.getN();//1000
</script>