全书从6个方面总结,分别是原始对象、引用对象、函数、理解对象、构造函数和原型对象、继承、对象模式。
面向对象的几个特性:封装、继承、多态。
原始类型保持为简单的数据值
引用类型保存为对象
javaScript有五种原始类型
- boolean
- number
- string
- null
- undefined
鉴别原始类型
console.log(typeof “junhey”)
创建对象
var object=new Object();
内建类型实例化
Array 数组类型
Date 日期和时间类型
Error 运行期错误类型
Function 函数类型
Object 通用对象类型
RegExp 正则表达式类型
可以new来实例化每一个内建引用类型,如下:1
2
3
4
5
6var item=new Array();
var now=new Date();
var error=new Error('Something bad happened');
var func=new Function("console.log('Hi');");
var object=new Object();
var re=new RegExp('\\d+');
鉴别引用类型
console.log(items instanceof Array);
函数两种字面形式
- 函数声明
1 | function add(num1,num2){ |
- 函数表达式
1 | var add=function(num1,num2){ |
参数1
2
3
4
5
6
7
8
9
10function sum(){
var result=0,
i=0,
len=arguments.length;
while(i<len){
result+=arguments[i];
i++;
}
return result;
}
this对象
全局作用域中,this代表全局对象。
当一个函数作为对象的方法被调用时,默认this的值等于那个对象。
改变this
1 | var name="junhey"; |
- call()
call()的第一个参数指定了函数执行时this的值,其后的所有参数都是需要被传入函数的参数。
- apply()
只接受两个参数:this的值和一个数组或者类似数组的对象