美文网首页PHPWeb前端之路让前端飞
从面向对象思想的角度来认识前端

从面向对象思想的角度来认识前端

作者: acd8eef1b5d7 | 来源:发表于2017-04-02 17:09 被阅读159次

    一提到前端,自然会听到h5,css3,自适应,移动端等等。给人的感觉要么杂乱,要么就是更新太频繁,学习速度跟不上,要么就是高深莫测、望尘莫及。对待它的办法唯有死记硬背,但又很累......

    怎么才能让它感觉轻松起来?那就应该换种思路去认识它。就像你朝着太阳看,永远都是眼光;背着太阳看,永远都是阴影。换个角度来认识它,可能一切就清晰明了了,那么也就可能跟着轻松起来了。

    用面向对象的思想去重新认识前端。

    其实,这不是无端产生的,而是应该去这么认识它。因为像html,css,js,php这些对编程世界来说,是“上层语言”部分,它们本身就是编程思想直接使用的结果。

    所以,这些领域的特点必然就是:是把抽象而晦涩的指针、内存、堆栈、指令等都封装了,为的是提高用户的体验效果。那么你在它们身上自然是很难看到指针、内存泄漏、堆栈等这些影子的。

    因为要绚丽的外表,因此内在就隐藏的更深、更神秘。自然学习它也就要撕开外衣,自然变得更不知所措。那么如果要深入理解它,就得从根本上去分解它。

    学了C++,你会对面向对象思想很清晰。它里面的特点就是:

    类-对象,对象里面有成员属性、成员方法;成员属性又可以是复杂的类型,如:子对象。

    使用方式就是:造对象,对象调用成员属性或者成员方法。

    此时再看看html的源码架子:

    PHP葵花宝典

    那么类比起来,结果就应该是:

    造了一个对象,名字叫html,它有两个成员属性,分别叫:head,body;而他们里面又各自有成员属性,如:body对象里面有个成员属性,该成员属性也是个对象,名叫:div,而该div的内部情况又是:

    1个成员属性,名id,值为字符串"div1";

    1个成员属性,名未知(但总会有个名字的),值为字符串:"PHP葵花宝典";

    1个成员属性,名style,值为字符串:"color: #333;";

    1个成员属性,名onclick,值为字符串:"return kkk();";

    同时,编译器可以这样做:对于名叫style的成员属性,它里面的内容采用css解释器去解释,那就不会直接傻乎乎的当字符串直接输出给用户了。

    而对于名字以"on"开头的成员属性,对它里面的内容采用js解释器去解释,那也不是直接傻乎乎的当字符串直接输出了。其他名字的成员属性,就按字符串去处理......

    这样,这种编译器就可以解释这个html源码了,这样的解释器其实就可以让浏览器来充当,自然推的出:浏览器里会有这么几种解释工具:html解释工具,css解释工具,js解释工具(其实就是那个叫“js引擎”的东西);

    总结一下:你写的html源码,可以对应成这样的结果:“对象-成员属性,成员属性又是个对象,该对象又有成员属性,对于style属性的值就用css解释器去解释,对于on开头的属性的值就用js解释器去解释......”,

    这样就可以呈现出一棵倒立的树了,这就是DOM树。只要有这种解释和转化的能力就可以实现了。那么,谁有这种解释和转化的能力?浏览器。

    所以:通过浏览器,可以把html源码和DOM树一一对应起来。

    现在你应该清楚了吧,手写的html源码是可以和DOM树一一对应的;

    这样,一切谜底就解开了。

    所以,html,h5,css,css3,js这些东西也就自然变得很清晰、可爱了。因为它们就是一棵倒立的树,树里面有什么对象,对象里面有什么成员属性,一目了然。你修改一下DOM树的结构,自然结果也就跟着改变了,仅此而已......

    相关文章

      网友评论

        本文标题:从面向对象思想的角度来认识前端

        本文链接:https://www.haomeiwen.com/subject/lwwiottx.html