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