Giter Club home page Giter Club logo

javascriptoop's Introduction

面向对象编程OOP(Object Oriented Programming)

在面向对象程序开发**中,每一个对象都是功能中心,具有明确分工。

面向对象编程具有灵活、代码可复用、容易维护和开发的优点,更适合多人合作的大型软件项目。

面向对象的特性:

  • 封装性
  • 继承性
  • 多态性

思维特点:

  1. 抽取(抽象)对象共用的属性和行为组织(封装)成一个类(模版);
  2. 对类进行实例化,获取类的对象。

一、类class

类抽象了对象的公共部分,它泛指某一大类(class); 对象特指某一个,通过类实例化一个具体的对象。

1、创建类

语法:

class Name{
	// class body
}
  1. 类里面所有的函数不需要写function
  2. 多个函数方法之间不需要添加逗号分隔

创建实例:(必须使用new实例化对象)

let xx = new Name();

2、类constructor构造函数

constructo()方法是类的构造函数(默认方法),用于传递参数,返回实例对象,通过new命令生成对象实例时,自动调用该方法。如果没有显示定义,类内部会自动给我们创建一个constructor()

  1. 通过 class 关键字创建类,类名还是习惯性定义首字母大写。
  2. 类里面有个constructor函数,可以接受传递过来的参数,同时返回实例对象。
  3. constructor 函数只要 new 生成实例时,就会自动调用这个函数,如果我们不写这个函数,类也会自动生成这个函数。
  4. 生成实例 new 不能省略。
  5. 最后注意语法规范,创建类 类名后面不要加小括号,生成实例类型后面加小括号,构造函数不需要加function。

3、类的继承

现实中的继承:子承父业,比如我们都继承了父亲或者母亲的姓。

程序的继承:子类可以继承父类的一些属性和方法

1、基础写法

`class Father{
// 父类
}
class Son extends Father{
// 子类继承父类
}`

2、super关键字

super关键字用于访问和调用对象父类上的函数,可以调用父类的构造函数,也可以调用父类的普通函数

`class Father{
// 父类、
	say(){
		return 'father'	
	}
}
class Son extends Father{
// 子类继承父类
	say(){
		// super.say() super调用父类的方法
		return super.say() + '儿子';	
	}
}`

继承中的属性或方法查找原则:就近原则

  1. 继承中,如果实例化子类输出一个方法,先看子类有没有这个方法,如果有就先执行子类的
  2. 继承中,如果子类里面没有,就去查找父类有没有这个方法,如果有,就执行父类的这个方法(就近原则)。

4、ES6中的类和对象

三个注意点:

  1. es6中类是没有变量提升的,所以必须先定义类,才能通过类实例化对象
  2. 类里面的公有的属性和方法一定要加this使用
  3. 类里面的this指向问题
  4. constructor里面的this指向实例对象,方法里面的this指向这个方法的调用者

javascriptoop's People

Contributors

ericleen1 avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.