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对象