转行前端(JS篇9):js是面向对象开发设计的语言

155 阅读2分钟

JS是一门编程语言

[面向对象] JS/JAVA/PHP/C#/Ruby/Python/C++

[面向过程] C

面向对象编程,需要掌握:对象、类、实例的概念

1、对象:万物皆对象

2、类:对象的具体细分【按照功能特点进行分类:大类小类】

3、实例:类中具体的一个事物【拿出类别中的具体一个实例进行研究,那么当前类别下的其他实例也具备这些特点和特征】

整个JS就是基于面向对象设计和开发出来的语言,我们学习和实战的时候,也要按照面向对象的思想

JS中的内置类

object对象类(基类)

number【0、nan、1、2、3都是数字类的实例】 array【每一个数组都是array类的实例】

string Boolean null undefined regexp function date

HTMLCollection【每一个元素集合都是它的实例】

NodeList

EventTarget【Node--Element--HTMLElement--HTMLBodyElement--body元素对象是他的一个实例】

基于构造函数创建自定义类(constructor) 1、在普通函数执行的基础上“new xxx()”,这样就不是普通函数执行了,而是构造函数执行,当前的函数名称之为类名

2、自己创建的类名,最好第一个单词首字母大写

3、这种构造函数设计模式执行,主要用于组件、类库、插件、框架等的封装,平时编写业务逻辑一般不这样处理

function Fn(){ }

var f=new Fn()//=>Fn是类 f是类的一个实例

var f2=new Fn()//=>f2也是Fn的一个实例,f2和f是独立分开的,互不影响的

var obj1={};//=>obj1是object的一个实例

var obj2={};//=>obj2是object的一个实例

JS中创建值有两种方式:

1、字面量表达式

2、构造函数模式

var obj={}//=>字面量方式

var obj=new object()//=>构造函数模式

不管是哪种方式创造出来的都是object类的实例,而实例之间是独立分开的,所以var xxx={}这种模式就是JS中的单例模式

基本数据类型基于两种不同的模式创建出来的值是不一样的

1、基于字面量方式创建出来的值是基本类型值

2、基于构造函数创建出来的值是引用类型

num1\num2都是数字类的实例,num1是js表达式的方式之一

var num1=12;//=>number

var num2=new Number(12);//=>object