面向对象
概念:JS没有类的概念,JS是基于对象的编程思想
类(概念):引用类型(构造函数)
对象:类的实例【通过类创建出来的东西】
如何创建对象
1.object
语法:
var 对象=new Object();
对象.属性=值;
对象.方法=function(){ 方法体 }
2.字面量
语法:
var 对象={
属性:值,
方法:function(){ 方法体 }
}
以上两种创建方法适合创建单个对象,当遇到需要创建多个对象时,则代码会变的冗余。
3.工厂函数
- 1)声明工厂函数
function createXXX(参数1,参数2){
//createXXX为函数名
var 对象 = new Object();
对象.属性 = 值;
对象.方法 = function(){}
return 对象;
}
- 2)调用工厂函数
var 对象=createXXX(a,b)
//a,b为参数的值(实参)
工厂函数缺点:1.类型不明确 ,不管是什么对象,类型都是Object 2.函数重复,性能浪费
4.
构造函数
- 1)先声明一个大写开头的构造函数(大写开头是语法规范),例如以phone为函数名
function Phone(){
this.属性=值;
this.方法=function(){方法体}
//this在谁里面,就代表谁;this谁调用就指向谁
//括号里可以写形参
}
- 2)调用时
var 对象=new Phone(a,b)
//a,b为实参
当console.log输出对象的时候,可以看到输出对象的类型为Phone。
使用构造函数可以解决类型不明确的问题,但是不能解决函数重复的问题
5.原型prototpye
通常和构造函数搭配起来使用
每个函数都有一个prototype属性,这个是属性指向一个对象,对象的用途是包含可以由特定类型的所有实例共享的属性和方法。