面向对象:可以创建自定义的类型,很好的支持继承和多态。
面向对象的特征:封装、继承、多态
对象的概念:
JS中,对象是一组无序的相关属性和方法的集合。 对象的作用:封装信息 对象具有特征(属性)和行为(方法)。为什么需要对象?
保存一个值时,可以使用变量,保存多个值(一组值)时,可以使用数组var arr = ['王二', 35, '男', '180'];
使用JS的对象表达,结构更加清晰:
var person = {}; person.name = '王二'; person.age = 35; person.sex = '男'; person.height = '180';对象里面的属性均是键值对 键:相当于属性名。值:相当于属性值
对象的属性值可以是任何的数据类型,也可以是个函数
var obj = new Object(); obj.sayName = function () { console.log('cc'); }; console.log(obj.sayName); //没加括号,就是获取方法 console.log('-----------'); console.log(obj.sayName()); //加了括号,就是调用方法。即:执行函数内容,并执行函数体的内容
对象中的属性值,也可以是一个对象
//创建对象 obj1 var obj1 = new Object(); obj1.test = undefined; //创建对象 obj2 var obj2 = new Object(); obj2.name = "cc"; //将整个 obj2 对象,设置为 obj1 的属性 obj1.test = obj2; console.log(obj1.test.name);
对象和数据类型之间的关系:
数据类型分类 基本数据类型(值类型):String 字符串、Number 数值、Boolean 布尔值、Null 空值、Undefined 未定义。 保存在栈内存中,值与值互不影响 引用数据类型(引用类型):Object 对象。 保存在堆内存中的,对象的引用(即变量)是保存在栈内存中的对象的分类:
1.内置对象: 由ES标准中定义的对象,比如:Object、Math、Date、String、Array、Number、Boolean、Function等 2.宿主对象: 由JS的运行环境提供的对象,目前来讲主要指由浏览器提供的对象。比如 BOM DOM。比如console、document。 3.自定义对象: 自己创建的对象,通过 new 关键字创建出来的对象实例