JS面向对象逆向学习法,让难理解的统统一边去(1)~

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

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

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

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

前世:

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

时间: 2024-11-05 18:48:19

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

费曼学习法的浅显理解

关于费曼学习法的浅显理解 概念: 费曼学习法是一种我正在使用的学习法,一个人A学到了或理解了一个自己以前接触或者没接触过的知识点B(理解的浅显含义:A通过B推出D结论)可以此人尽自己最大能力将这个知识点阐述于另外一个人C,C可以达到推出D结论地步.这是我的理解方式于费曼学习法 图示 关键 此学习法的关键在于三个词,简述 类比 迭代. 笔者自己得到的关键词组合便是,学习一次概念之后的结果,用简短的语言将知识点讲述出来,通过自己想起来简单的例子去形象化概念,听者听不懂的时候,对这个听不懂的地方进行查

js面向对象的学习记录

1.函数之前加了new会变成对象,this的引用发生变化. function show() { alert(this); } window.onload=function(){ var btn1=document.getElementById('btn1'); btn1.onclick=show; } show(); //window new show(); //新创建的对象 2.原型继承 prototype 这个有的说,之前粗略的看了JavaScript设计模式的时候就说了继承的两种方式. 上

JS面向对象的学习

1.面向对象 var arr = new Array(); //[] //我们把系统自带的对象,叫做系统对象 var arr = []; arr.number = 10; //对象下面的变量:叫做对象的属性 arr.test = function(){ //对象下面的函数 : 叫做对象的方法 alert(123); }; 2.面向对象的转变 var obj = new Object(); //创建了一个空的对象 obj.name = '小明'; //属性 obj.showName = funct

2017.05.06FreeCodeCamp编程之JS面向对象编程学习

1.构造对象的方法: ① ②使用构造函数来创建对象.构造函数 通常使用大写字母开头,以便把自己和其他普通函数区别开. 在 构造函数 中, this 指向被此 构造函数 创建出来的 对象 . 2.使用构造函数的方法:使用构造函数时,我们通过在它前面使用 new关键字 来对它进行调用 要使用 new 关键字 去调用构造函数.因为只有这样,Javascript才知道这是要去构造一个新 对象 ,并且把构造函数中的 this 指向这个新对象. 现在,当 myCar (即 Car 的一个 实例 )创建后,他

Js面向对象OOP学习指南

Type: 1.基本类型 each variable containing a primitive value uses its own storage space . tip: undefined == null true 2.引用类型

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

原文地址:js面向对象学习笔记 一.对象概念 对象是什么?对象是“无序属性的集合,其属性可以包括基本值,对象或者函数”.也就是一组名值对的无序集合. 对象的特性(不可直接访问),也就是属性包含两种,数据属性和访问器属性. 1.数据属性又包含 Configurable //表示能否通过delete删除,默认为true: Enumerable //表示能否通过for-in循环返回属性,默认为true; Writable  //表示能否修改属性的值,默认为true; Value            

C# 面向对象编程的核心技能的理解学习记录

学习的困惑 1. 不知道怎么学习 刚开始学习变成,看了相关的教材,但是没有体会到什么是面向对象编程,也不知道怎么深入学习: 2. 只是盲目的使用 已经工作,也会做一些项目,但是很多时候不明白为什么这么设计. 自己的知识点很多,但是没有系统性,也不知道该往哪个方向发展. 我现在就是处于这个情况,有一些了解,看着别人的项目我也能再写一个但是很多地方很难理解,知识很散乱,真的,很无奈,在这里一开始接触windows就要自己编出一个项目来,没有一点点的C#的基础,以前是做Android的,Android

简单粗暴地理解js原型链--js面向对象编程

简单粗暴地理解js原型链--js面向对象编程 原型链理解起来有点绕了,网上资料也是很多,每次晚上睡不着的时候总喜欢在网上找点原型链和闭包的文章看,效果极好. 不要纠结于那一堆术语了,那除了让你脑筋拧成麻花,真的不能帮你什么.简单粗暴点看原型链吧,想点与代码无关的事,比如人.妖以及人妖. 1)人是人他妈生的,妖是妖他妈生的.人和妖都是对象实例,而人他妈和妖他妈就是原型.原型也是对象,叫原型对象. 2)人他妈和人他爸啪啪啪能生出一堆人宝宝.妖他妈和妖他爸啪啪啪能生出一堆妖宝宝,啪啪啪就是构造函数,俗

js面向对象深入理解

js面向对象深入理解 ECMAScript 有两种开发模式:1.函数式(过程化),2.面向对象(OOP).面向对象的语言有一个标志,那就是类的概念,而通过类可以创建任意多个具有相同属性和方法的对象.但是,ECMAScript 没有类的概念,因此它的对象也与基于类的语言中的对象有所不同. 一.创建对象 创建一个对象,然后给这个对象新建属性和方法. var box = new Object(); //创建一个Object 对象 box.name = 'Lee'; //创建一个name 属性并赋值 b