|
@@ -0,0 +1,36 @@
|
|
|
+<!DOCTYPE html>
|
|
|
+<html lang="en">
|
|
|
+<head>
|
|
|
+ <meta charset="UTF-8">
|
|
|
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
|
+ <title>Document</title>
|
|
|
+</head>
|
|
|
+<body>
|
|
|
+ <script>
|
|
|
+ function fn1(x,y) {
|
|
|
+ var sum = x * y;
|
|
|
+ console.log(sum,'sum')
|
|
|
+ console.log(this,'this')
|
|
|
+ console.log(this.name)
|
|
|
+ }
|
|
|
+ var obj = {
|
|
|
+ name:"LiLi"
|
|
|
+ }
|
|
|
+ fn1(2,3)
|
|
|
+ // fn1.call(obj,2,3)
|
|
|
+ // fn1.apply(obj,[2,3])
|
|
|
+ fn1.bind(obj,2,3)()
|
|
|
+ /**
|
|
|
+ * 修改this指向
|
|
|
+ * 1.call(修改的this指向,参数1,参数2,.....)
|
|
|
+ * 2.apply(修改的this指向,[参数1,参数2,.....])
|
|
|
+ * 3.bind(修改的this指向,参数1,参数2,.....)()
|
|
|
+ * 区别:
|
|
|
+ * 1.bind无法进行函数直接调用,call和apply可以进行函数直接调用
|
|
|
+ * 2.call从第二项开始就是要传入的参数
|
|
|
+ * 3.apply从第二项开始,所有参数放到数组中
|
|
|
+ * 4.call的传参与bind相同
|
|
|
+ */
|
|
|
+ </script>
|
|
|
+</body>
|
|
|
+</html>
|