JS - ES5与ES6面向对象编程】的更多相关文章

1.面向对象 1.1 两大编程思想 1.2 面向过程编程 POP(Process-oriented programming) 1.3 面向对象编程 OOP (Object Oriented Programming) 1.4 面向过程和面向对象的对比2.ES6 中的类和对象 2.1面向对象 2.2对象 2.3 类 class 2.4 类 constructor 构造函数 2.5 类添加方法 2.6 类的继承 2.7super 关键字 3. ES5 - 构造函数和原型 3.1. 概述 3.2 构造函…
很奇怪的是很多书或资料没有把这个事情讲清楚. 关键就是在于没有一个整体的思维技术模式,问题被隔离了所以反而不容易理解. 我们先看this,这是js的关键字,指示函数的上下文对象. 这里问题就来了,比如: var obj = {}; obj.name = 'test'; obj.output = function () { console.log(this.name); }; obj.output(); this指定了上下文对象,当然如果没有指定就会指定到全局变量,window,这就是问题的根源所…
1.前言 创建对象有很多种方法,最常见的是字面量创建和new Object()创建.但是在需要创建多个相同结构的对象时,这两种方法就不太方便了. 如:创建多个学生信息的对象 let tom = { name: "Tom", age: 20, sex: "boy", height: 175 }; let marry = { name: "Marry", age: 22, sex: "girl", height: 165 } 2.…
js是一门基于面向对象编程的语言.      如果我们要把(属性)和(方法)封装成一个对象,甚至要从原型对象生成一个实例,我们应该怎么做呢?  一.生成对象的原始模式            假定把猫看成一个对象,它有name和color两个属性.            var cat = {                name:'',                 color:''            }                        现在,我们需要根据这个原型对象的规格…
总的来说js语言就是门面向对象编程的语言,对象这个概念几乎贯穿了整个js的学习. 对象 创建对象两种方法:(若要生成对象实例必须调用构造函数) 1.var obj = {name:"jer" , age:12};(在js内部调用了预设的Object()构造函数) 访问:alert(obj.name);//"jer" alert(obj["name"]);//"jer" 2.var obj = new Object(); obj…
ES5 写法 function Book(title, pages, isbn) { this.title = title; this.pages = pages; this.isbn = isbn; } Book.prototype.printTitle = function () { console.log(this.title); }; let book = new Book('title', 'pag', 'isbn'); console.log(book.title); //输出图书标…
写在前面的话 这是一个JavaScript面向对象系列的文章,本篇文章主要讲概述,介绍面向对象,后面计划还会有5篇文章,讲抽象.封装.继承.多态,最后再来一个综合. 说实话,写JavaScript面向对象的文章实在是太多了,网上一搜一大堆,很多书里面也介绍的很详细.但作者当初在学习面向对象的时候还是非常困难,特别是在习惯了面向过程编程的情况下,不知道大家有没有这个感受. 作者分析了一下其中的原因,恐怕是因为里面涉及的概念太多:原型.原型链.继承.this.constructor.call等等,这…
本章默认大家已经看过作者的前一篇文章 <JavaScript面向对象轻松入门之抽象> 为什么要封装? 封装(Encapsulation)就是把对象的内部属性和方法隐藏起来,外部代码访问该对象只能通过特定的接口访问,这也是面向接口编程思想的一部分. 封装是面向对象编程里非常重要的一部分,让我们来看看没有封装的代码是什么样的: function Dog(){ this.hairColor = '白色';//string this.breed = '贵宾';//string this.age = 2…
多态(Polymorphism)按字面的意思就是"多种状态",同样的行为(方法)在不同对象上有不同的状态. 在OOP中很多地方都要用到多态的特性,比如同样是点击鼠标右键,点击快捷方式.点击桌面空白处.点击任务栏等弹出的菜单都是不同的. 方法重写(override): 即子类定义一个与父类名字相同的方法,以此覆盖父类方法,以此来实现不同的功能. function Animal(){} var AnimalP = Animal.prototype; AnimalP.eat = functi…
一.介绍 我们继续面向对象吧,这次是面向对象编程的第二篇,主要是讲创建对象的模式,希望大家能从博客中学到东西. 时间过得很快,还是不断的学习吧,为了自己的目标. 二.创建对象 1.前面的创建对象方式 a.在前面的章节中,我们创建对象的方式有两种:new Object() 和 对象字面量: //1.new Object() 创建对象 var person1 = new Object(); person1.name = "ry"; person1.age = 21; //2.对象字面量 v…