【JavaScript】36_bind函数
【摘要】 20、bind函数根据函数调用方式的不同,this的值也不同:以函数形式调用,this是window以方法形式调用,this是调用方法的对象构造函数中,this是新建的对象箭头函数没有自己的this,由外层作用域决定通过call和apply调用的函数,它们的第一个参数就是函数的this通过bind返回的函数,this由bind第一个参数决定(无法修改)bind() 是函数的方法,可以用来创...
20、bind函数
根据函数调用方式的不同,this的值也不同:
- 以函数形式调用,this是window
- 以方法形式调用,this是调用方法的对象
- 构造函数中,this是新建的对象
- 箭头函数没有自己的this,由外层作用域决定
- 通过call和apply调用的函数,它们的第一个参数就是函数的this
- 通过bind返回的函数,this由bind第一个参数决定(无法修改)
bind() 是函数的方法,可以用来创建一个新的函数
- bind可以为新函数绑定this
- bind可以为新函数绑定参数
箭头函数没有自身的this,它的this由外层作用域决定,
也无法通过call apply 和 bind修改它的this
箭头函数中没有arguments
<script>
function fn(a, b, c) {
console.log("fn执行了~~~~", this)//此处的this代指下面的obj
console.log(a, b, c)
}
const obj = {name:"孙悟空"}
const newFn = fn.bind(obj,10,20,30)
newFn()
const arrowFn = () => {
console.log(this)
}
// arrowFn.call(obj)
const newArrowFn = arrowFn.bind(obj)
newArrowFn()
class MyClass{
fn = () => {
console.log(this)
}
}
const mc = new MyClass()
// mc.fn.call(window)
</script>
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)