js中的call()、apply()、bind()方法
var a= {
name:"李四",
age: "五岁",
text: function() {
return this.name+ " " + this.age;
}
} let b= {
name: "张三",
age: "八岁",
};
console.log(a.text()); // 李四--五岁--undefined--undefined
console.log(a.text.call(b)); // 张三--八岁--undefined--undefined
console.log(a.text.call(b, '身高120', '胸围90')); // 张三--八岁--身高120--胸围90
console.log(a.text.call(b, ['身高120', '胸围90'])); // 张三--八岁--身高120,胸围90--undefined
// apply 的所有参数必须放在数组里传进去
console.log(a.text.apply(b));// 张三--八岁--undefined--undefined
console.log(a.text.apply(b, '身高130', '胸围95')); // CreateListFromArrayLike called on non-object
console.log(a.text.apply(b, ['身高130', '胸围95']));// 张三--八岁--身高130--胸围95
// bind 返回的是一个新的函数,你必须调用它才会被执行; bind 除了返回是函数以外,它 的参数和 call 一样
console.log(a.text.bind(b)()); // 张三--八岁--undefined--undefined
console.log(a.text.bind(b, '身高140', '胸围100')()); // 张三--八岁--身高140--胸围100
console.log(a.text.bind(b, ['身高140', '胸围100'])()); // 张三--八岁--身高140,胸围100--undefined
最新文章
- 创建一个自定义颜色IRgbColor
- build.fxbuild打不开 Failed to create the part's controls
- Windows安装java
- 编码-截取中文-去除HTML字符
- 手工、工具分别实现cookie注入
- c# 判断网络是连接到互联网
- Output in PowerShell
- 什么是WEBserver? 经常使用的WEBserver有哪些?
- IntelliJIDEA Getting+Started+with+Spring+MVC,+Hibernate+and+JSON
- 如果没有UX经验,如何创建个人UX作品集?
- sublimeserver启动本地服务器(sublime text)
- UML介绍--用例图
- Mongodb----整理
- swift:简单使用翻页控制器UIPageViewController
- 010-Go 操作PostgreSQL数据库2
- 不同Linux机器之间拷贝文件
- Mac 10.12安装Google浏览器
- 右键菜单 GenericMenu
- HDU 4946 Area of Mushroom 共线凸包
- Block Formatting Contexts (块级格式化上下文) 使用参考