[TOC]
* Javascript的函数也是对象,它有三种方法可以改变函数内部this关键字的指向。
## 1.bind
```
var wang = {
name:"娟娟娟"
}
var apple = function(){
console.log(this.name);
}.bind(wang);
apple();
```
## 2.call
```
语法:call(thisObj,params)
//第一个参数指向函数内部的this,之后的参数是需要被传入函数的参数
```
```
function sayName(label) {
console.log(label + ":" + this.name);
}
var name = "window";
var cheng = {
name: "cheng"
};
var jiang = {
name: "jiang"
};
sayName.call(this,"window");
sayName.call(cheng,"cheng");
sayName.call(cheng,"cheng");
```
> 功能
1.改变函数内部this关键字的指向
2.可以让对象拥有一个它没有的方法
```
var cheng = {
name:"cheng",
say(){
console.log("喜欢吃面")
}
}
var jiang ={};
cheng.say.call(jiang);
```
## 3.apply()
> 语法:apply(thisObj,[params])
```
var cheng = {
name:"cheng"
}
var jiang = {
name:"jiang",
sayName(a,b){
console.log(this.name);
console.log(a+b);
}
}
jiang.sayName.apply(cheng,[1,2])
```
- 1.JS的基础知识
- (1)调试
- (2)变量
- (3)数据类型
- 数据类型之间的转换
- (4)全局变量和局部变量
- (5)运算符和表达式
- (6)数组
- 2.控制语句DOM,BOM,事件
- (1)控制语句
- (2)DOM的基础
- 节点
- 改变样式
- DOM事件
- 3.函数
- (1)声明函数
- (2)构造函数
- (3)函数的参数
- (4)函数的传参
- (5)改变this
- (6)重载
- (7)回调函数
- 4.数组
- (1)创建数组
- (2)增删改查
- (3)字符串与数组的转换
- 5.正则
- (1)创建正则
- (2)字符串中支持正则
- (3)语法
- 最核心的元字符
- 6.ajax
- (1)原生ajax
- (2)http,get,post
- (3)跨域
- (4)jQuery-ajax
- (5)axios
- 7.面向对象
- (1)原型
- (2)原型链,继承
- (3)多态
- 8.es6小结
- 9.js+canvas实现验证码
- 10.js的作用域
- 11.闭包
- 实例
- toggle
- 图片切换
- swiper
- 遮罩颜色渐变
- 表格添加
- 瀑布流
- ajax数据请求渲染
- 百度地图