问题
- A页面的功能 我想在B页面也有该怎么实现
- 有人可能要说 原型链继承 protype
- 这样是可以但是触发的时候会在A页面触发,原因,原型链继承也会继承他的指向
- 解决 bind ,applay call
使用前提:必须是方法才能使用
- 你可以理解为清除数据中的所有数据替换成你传入的
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
<div onclick="getValue(1)">吃饭</div>
<div onclick="getValue(2)">工作</div>
<div onclick="getValue(3)">装逼</div>
</body>
<script>
dog = {
name:"旺财",
eat : function(value){
console.log("我要吃",value)
},
run:function(){
console.log("我要跑")
console.log(this.name)
},
flg:function(){
console.log("我会飞")
console.log(this.name)
}
}
dcat = {
name:"汤姆",
getFunction:function (value){
if(value === 1){
let name = dog.eat.bind(this,"鱼")
name()
}else if(value === 2){
dog.run.call(this)
}else {
dog.flg.call(this)
}
// 继承中转站
}
}
getValue = function(value){
this.dcat.getFunction(value)
}
let newdact = dog.eat.bind(dcat)
console.log(newdact)
newdact("鱼")
// newdact.eat()
</script>
</html>