0
点赞
收藏
分享

微信扫一扫

call、apply、bind 的区别

覃榜言 2022-04-14 阅读 87
javascript
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
</head>
<body>
<script>
var ll = {
name: '李雷',
age: 18,
intr(area, country) {
// console.log('我是李雷')
// console.log(this.name + '今年' + this.age + '岁' )
console.log(
this.name + '今年' + this.age + '岁' + '来自' + area + country
)
},
}
var mm = {
name: '梅梅',
age: 12,
}
ll.intr() //李雷今年18岁
ll.intr('非洲') //李雷今年18岁来自非洲
ll.intr.call(mm) //梅梅今年12岁
ll.intr.call(mm, '美国', '美洲') //梅梅今年12岁来自美国美洲
ll.intr.apply(mm, '英国') //报错 Uncaught TypeError: CreateListFromArrayLike called on non-object
ll.intr.apply(mm, ['意大利', '欧洲']) //梅梅今年12岁来自意大利欧洲
console.log(ll.intr.bind(mm)) //返回是函数
ll.intr.bind(mm)('韩国', '亚洲') //梅梅今年12岁来自韩国亚洲
</script>
</body>
</html>
举报

相关推荐

0 条评论