this指向
1.分析this指向
函数中this指向,情况如下:
- 构造函数内部的this指向新创建的对象。
- 直接通过函数名调用函数时,this指向的是全局对象window。
- 如果将函数作为对象的方法调用,this将会指向该对象。
function Person(name){
this.name = name;
}
var p1 = new Person("张三");
function foo(){
return this;
}
var o = {
name:"刘备",
func:foo
}
foo()
console.log(foo() === Window);
console.log(o.func());
console.log(o.func() === o);
2.更改this指向
(1)apply()方法和call()方法
function method(){
console.log(this.name);
}
method.apply({name:"张三"})
method.call({name:"李四"})
(2)apply()方法和call()方法的区别
function method(a,b){
console.log(a + b);
}
method.apply({},["1","2"])
method.apply({},[1,2])
method.call({},1,2)
(3)bind()方法
bind()方法:实现提前绑定的效果。在绑定时,还可以提前传入调用函数时的参数。
function method(a,b){
console.log(this.name + a + b);
}
var name = "诸葛亮";
var test = method.bind({name:"赵云"},"3","4");
method("1","2");
test();
JavaScript的错误处理
1.如何进行错误处理
var o = {};
try {
o.func();
console.log('a');
} catch(e) {
console.log(e);
}
console.log('b');
2.抛出错误对象
try {
var e1 = new Error("错误信息");
throw e1;
} catch (error) {
console.log(error.message);
console.log(error === e1);
}
3.错误类型
|