[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數據請求渲染
- 百度地圖