JS劫持(apply、bind、call)、apply方法求数组最大值,最小值

173 阅读1分钟

劫持:就是在一个函数运行之前把它劫持下来,添加我们想要的功能

分类:有下面三种劫持:

1.系统的内置功能的重写:就是将系统内置函数功能修改为自己想要实现的功能;也就是系统内置函数的改写

2.this关键字的引用劫持:通过函数的一些特殊方法来自己指定函数的调用者

3.黑客劫持网络数据包,然后暴力解码(逆向工程),个人隐私数据窃取

1.系统的内置功能的重写(系统原本的功能不改变,在这个的基础上添加自己想实现的功能):1.控制台打印

例:

image.png

2.this关键字的引用劫持:偷方法者相当于this指向谁

先复习一下以前的,便于理解:

image.png

1.call(偷方法者,参数,参数...)方法:(偷方法)从第二个开始代表函数运行时传入的参数

image.png

2.apply(偷方法者,[参数,参数,参数...])方法:与call方法基本一致,区别在于,apply方法的所有参数需要放在一个数组中传入进去。

image.png

image.png

3.bind(调用者,参数,参数...)方法:定义式的函数可以在设计的时候就指定this

注意:bind()的优先级比前面两个的劫持方法apply(),call()的优先级高

image.png

黑客劫持网络数据包,然后暴力解码(逆向工程),个人隐私数据窃取

拓展:求数组中的最大值,最小值

image.png