代码语言:javascript复制
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<script>
//this是什么?谁调用当前的属性或者方法的,它就是谁
/* 2.1.bind方法作用
修改函数或者方法中的this为指定的对象, 并且会返回一个修改之后的新函数给我们
注意点: bind方法除了可以修改this以外, 还可以传递参数, 只不过参数必须写在this对象的后面
*/
//call apply bind修改this的
/*call:修改函数或者方法中的this为指定的对象, 并且会立即调用修改之后的函数
注意点: call方法除了可以修改this以外, 还可以传递参数,
*/
/*apply:修改函数或者方法中的this为指定的对象, 并且会立即调用修改之后的函数
注意点: apply方法除了可以修改this以外, 还可以传递参数, 只不过参数必须通过数组的方式传递
立即执行是不返回的.
*/
let obj={name:"cyg"};
/* function test(a,b)
{
console.log(a,b);
console.log(this);
}
test(10,20);
window.test();
let fn=test.bind(obj,10,20);
fn();
test.call(obj,10,20);
test.apply(obj,[10,20]);
*/
function Person() {
this.name = "lnj";
this.say = function () {
console.log(this);
}
}
let p= new Person();
p.say();
let fn=p.say.bind(obj);
fn();
p.say.call(obj);
p.say.apply(obj);
</script>
</body>
</html>