什么是劫持

劫持有以下几种:

1.网络劫持技术:反编码 逆向工程

2.网页内部的劫持:插件脚本

3.方法劫持:把A对象的方法让B对象调用,A方法执行内部的this指向改变

这里主要说明第三种方法劫持

call、apply用法示例:

<script>
var obj2 = {
				name: "jack"
			}
			var obj1 = {
				name: "karen",
				say: function(arg1, arg2) {
					console.log(this.name, arg1, arg2)
				}
			}

			 obj1.say()  //karen
			  obj1.say.call(obj2,100,2090)  //jack,100,2090
			 obj1.say.apply(obj2,[200,300])//jack,100,2090
</script>

bind方法:

<script>
var obj3 = {
				name: "marry"
			}
function fn () {
	console.log(this)  //marry
			}.bind(obj3);
</script>

要注意的是方法不能直接调用bind方法,否则会报错如:function(){}.bind()

正确格式应该是(function(){}).bind()或 let fn = function() {}  fn.bind()

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值