call( )方法和apply( )方法用法:
.call( this指向,参数 )
.apply( this指向,参数数组 )
注意:
这里的this指向必须是引用类型。
如果this被强行改变为值类型,那么能够转为对应包装类型的都会转,不能转的 指向window
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<script type="text/javascript">
// 定义函数
var fun = function() {
console.log(this);
}
// 强行使用call或者apply 将fun中的this指向值类型
var arr = [1, "1", false, null, undefined];
for(var i = 0; i < arr.length; i++) {
// fun.call(arr[i]);
fun.apply(arr[i]);
}
// this必须是引用类型 如果this被强行改变为值类型那么能够转为对应包装类型的都会转
// 如果不能转的 指向window
</script>
</body>
</html>
输出结果:
this指向数字值类型 相当于指向new Number( 数字值 )
this指向字符串值类型 相当于指向new String( 字符串值 )
this指向布尔值类型 相当于指向new Boolean( 布尔值 )
this指向null 或者 undefined 相当于指向window对象