- number(数值类型)
- string(字符串类型)
- boolean(布尔类型)
- null(空类型)
- undefined(未定义类型)
- object
对象是包含相关属性和方法的集合体
属性
方法
具有相同的属性和方法的对象的集合就是类
什么是面向对象
面向对象仅仅是一个概念或者编程思想
通过一种叫做原型的方式来实现面向对象编程
基于 Object 对象的方式创建对象
- var flower=new Object();
- flower.name="长春花";
- flower.genera="夹竹桃科 长春花属";
- flower.area="非洲, 亚热带, 热带以及中国大 6 的华东, 西南, 中南等地";
- flower.uses="观赏或用药等";
- flower.showName=function(){ alert(this.name); }
flower.showName(); 使用字面量赋值方式创建对象
- var flower={
- name:"长春花",
- genera:"夹竹桃科 长春花属",
- area:"非洲, 亚热带, 热带以及中国大 6 的华东, 西南, 中南等地",
- uses:"观赏或用药等",
- showName:function(){ alert(this.name); }
- }
- flower.showName();
常见的内置对象
String(字符串) 对象
Date(日期) 对象
Array(数组) 对象
Boolean(逻辑) 对象
Math(算数) 对象
RegExp 对象
constructor 属性
constructor 属性指向 Flower
- alert(flower1.constructor==Flower);
- alert(flower2.constructor==Flower);
- alert(flower3.constructor==Flower);
instanceof 操作符
- alert(flower1 instanceof Object);
- alert(flower1 instanceof Flower);
原型对象
每个函数都有一个 prototype 属性, 这个属性是一个指针, 指向一个对象
prototype 就是通过调用构造函数而创建的那个对象实例的原型对象
继承
原型链
一个原型对象是另一个原型对象的实例
相关的原型对象层层递进, 就构成了实例与原型的链条, 就是原型链
借用构造函数
apply([thisOjb[,argArray]])
应用某一对象的一个方法, 用另一个对象替换当前对象
call([thisObj[,arg1[,arg2[, [,argN]]]]])
调用一个对象的一个方法, 以另一个对象替换当前对象
组合继承
组合继承: 有时也叫做伪经典继承
将原型链和借用构造函数的技术组合到一块, 发挥二者之长的一种继承模式
使用原型链实现对原型属性和方法的继承, 而通过借用构造函数来实现对实例属性的继承
来源: https://www.2cto.com/kf/201809/777082.html