对于面向对象我只能说呵呵了,为什么呢,因为没对象~~~

既然你看到了这里,说明你有一定的基础,虽然本系列文章并不会过多的讲述基础部分,请做好心理准备。

本篇比较简单,这篇文章的意义是让你明白学习面向对象所需要掌握东西,并且重点是什么。

------------------------------------------------

前世:

  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:建了个前端群一起学习一起进步,但是只加真心想学的,可以私信我。

JS面向对象逆向学习法,让难理解的统统一边去(1)~的更多相关文章

  1. 前端学习:JS面向对象知识学习(图解)

    前端学习:JS面向对象知识学习(图解) 前端学习:JS(面向对象)代码笔记 JS面向对象图解知识全览 创建类和对象 方式1:使用Object()函数 方式2:使用自变量 方式3:使用工厂函数 创建多个 ...

  2. JS面向对象编程学习

    学习目标:1.掌握JS中的类(原型对象)和对象.2.什么是成员变量和成员方法.3.掌握构造方法的使用.补充:关于双等号(==):1.如果等号两边都是字符串时,则比较内容是否相等2.如果等号两边是数字时 ...

  3. JS面向对象的学习

    1.面向对象 var arr = new Array(); //[] //我们把系统自带的对象,叫做系统对象 var arr = []; arr.number = ; //对象下面的变量:叫做对象的属 ...

  4. js面向对象的学习笔记九(BOM 与 DOM 经常使用的属性分析)

    一  BOM物 window 的 相关属性 1. 用户配置的机器配置对象 navigator navigator.userAgent //该属性能够查看用户机器浏览器的配置 "Mozilla ...

  5. 前端学习:JS(面向对象)代码笔记

    前端学习:JS(面向对象)代码笔记 前端学习:JS面向对象知识学习(图解) 创建类和对象 创建对象方式1调用Object函数 <body> </body> <script ...

  6. js面向对象学习 - 对象概念及创建对象

    原文地址:js面向对象学习笔记 一.对象概念 对象是什么?对象是“无序属性的集合,其属性可以包括基本值,对象或者函数”.也就是一组名值对的无序集合. 对象的特性(不可直接访问),也就是属性包含两种,数 ...

  7. 带你一分钟理解闭包--js面向对象编程

    上一篇<简单粗暴地理解js原型链--js面向对象编程>没想到能攒到这么多赞,实属意外.分享是个好事情,尤其是分享自己的学习感悟.所以网上关于原型链.闭包.作用域等文章多如牛毛,很多文章写得 ...

  8. 【学习笔记】深入理解js原型和闭包(0)——目录

    文章转载:https://www.cnblogs.com/wangfupeng1988/p/4001284.html 说明: 本篇文章一共16篇章,外加两篇后补的和一篇自己后来添加的学习笔记,一共19 ...

  9. 新手如何理解JS面向对象开发?

    今天有时间讲讲我对面向对象的理解跟看法,尽量用通俗的语言来表达,多多指教! 如今前端开发已经越来越火了,对于前端开发的要求也是越来越高了,在面试中,经常有面试官会问:你对JS面向对象熟悉吗? 其实,也 ...

随机推荐

  1. 利用yum下载软件包的三种方法

    转自:http://297020555.blog.51cto.com/1396304/530703 方法一: downloadonly插件 有一个yum的插件叫做downloadonly,顾名思义,就 ...

  2. 51NOD算法马拉松11 B君的竞技场

    传送门 这题我在比赛的时候竟然没有想出来,真是-- 这道题我们可以想一想怎么搞定获胜的概率p. 我们发现再怎么这个p都是搞不了的.所以我们可以积一下分,然后就可以不用去管p了.我们要做的就是求出一个关 ...

  3. Web Workers

    在 Web Workers 中使用 postMessage 和 onmessage 首先,需要在客户端页面的 JavaScript 代码中 new 一个 Worker 实例出来,参数是需要在另一个线程 ...

  4. 使用Excel对象模型在Excel单元格中设置不同的字体

    效果是这样的: 首先找到这个单元格或区域Range cell,然后代码: ((Range)cell). Characters[, ].Font.Color = Color.Blue; ((Range) ...

  5. java的值传递和引用传递

    昨天博主在对于值传递和引用传递这里栽了一个大坑啊,导致一下午时间都浪费在这里,我们先说下值传递和引用传递java官方解释: 值传递:(形式参数类型是基本数据类型):方法调用时,实际参数把它的值传递给对 ...

  6. 《利用Python进行数据分析》第5章学习笔记

    pandas入门 数据结构 Series Series是一种类似于一维数组的对象,它由一组数据(各种NumPy数据类型)以及一组与之相关的数据标签(即索引)组成.仅由一组数据即可产生最简单的Serie ...

  7. Mybatis 后台SQL不输出

    在正确设置log4j.properties之后还是无法输出想要的SQL语句 经过搜索,发现是跟slf4j-api-1.6.1.jar这个jar包冲突了. 删掉之后就正常了, 但是这个包删掉的话acti ...

  8. Deploying JRE (Native Plug-in) for Windows Clients in Oracle E-Business Suite Release 12 (文档 ID 393931.1)

    In This Document Section 1: Overview Section 2: Pre-Upgrade Steps Section 3: Upgrade and Configurati ...

  9. App开发如何利用Fidder,在api接口还没有实现的情况下模拟数据,继续开发

    相信app开发很多时候,都是等后台出接口,拿到数据调试错误.殊不知,我们完全可以不用等,只要有约定好的接口定义文档,借助工具就能做到,自己模拟数据返回~      下面主要是在项目组开发过程中,使用F ...

  10. VS2012 编译带有c/c++代码的python模块失败解决方案

    python2.7默认编译带有/c++代码的模块/包是使用VS2008环境变量,所以为了可用,我们要在编译前设置环境变量 SET VS90COMNTOOLS=%VS110COMNTOOLS% 但有时只 ...