对于面向对象我只能说呵呵了,为什么呢,因为没对象~~~
既然你看到了这里,说明你有一定的基础,虽然本系列文章并不会过多的讲述基础部分,请做好心理准备。
本篇比较简单,这篇文章的意义是让你明白学习面向对象所需要掌握东西,并且重点是什么。
------------------------------------------------
前世:
box:那个,你看看,你这代码也叫代码?你知道的,我们可是有理想的公司,再这样的话,你可以走了。
~~:T_T。
box:让你学面向对象,为什么不学!
~~:学啊,只是没学会嘛。
~~:其实也不是没学会,多少还是懂面向对象的,面向对象不就是:封装,继承,多态...。
box:那你不是懂这些嘛,为啥写的代码还是那么搓。
~~:虽然懂,但是运用不起来啊,完全没思路。
box:你前面提到了封装,那好,我问问你,在JS中怎么进行封装。
~~:可以通过函数封装。比如我想让两个任意的数字相加:
××××××××××××× 代码开始 ××××××××××××××××××
function together(a,b){
return a + b;
}
××××××××××××× 代码结束 ××××××××××××××××××
box:Ok,很好,其实你已经成功了一小步,你看你已经会了封装,那么我们再来看看继承,JS怎么实现继承。
box:js继承说起来的话得长篇大论了,其实我们一直都在用继承。
××××××××××××× 代码开始 ××××××××××××××××××
var a = 10;
function fn(){
alert(a); //10
};
fn();
function fn2(){
alert(a); //10
};
fn2();
××××××××××××× 代码结束 ××××××××××××××××××
box:你看我们在全局里面定义了一个变量a,但我们在函数中并没有定义变量a,但也可以打印出a这个变量,这说明我们这个函数继承了外部变量(专业术语:作用域链)。
虽然这可以实现继承但是变量都暴露在外部了,这肯定是不行的,一旦项目复杂了很可能污染全局,我们再来看一个:
××××××××××××× 代码开始 ××××××××××××××××××
function All()
};
All.prototype.toAlert = function(a,b){
alert(a,b);
};
All.prototype.abc = function(){
console.log('追梦子博客园');
};
var all = new All(5,6); //继承All的prototype上的所有方法和属性
××××××××××××× 代码结束 ××××××××××××××××××
~~:这就是面向对象吗?
box:可以这么说,也可以不这么说,但这是最核心的部分,因为面向对象的实现就是这些简单的东西组和起来的。
~~:但这些我还是不能联系起来啊,当然这只是刚刚开始,好戏还在后头···
结束:
以上是比较核心的东西,大家认真看看,因为内容比较多所有分做几章来写,后面会讲几个实例,然后是逆行学习法。
ps:建了个前端群一起学习一起进步,但是只加真心想学的,可以私信我。