1. 程式人生 > 其它 >FFmpeg菜雞互啄#第4篇#音訊解碼

FFmpeg菜雞互啄#第4篇#音訊解碼

普通函式

語法格式:function(){}

箭頭函式

語法格式:() => {}

()中定義引數,如果只有一個引數,可以不寫括號
{}中寫函式體,如果函式體中只有返回值,可以不寫return

Demo01普通函式:

建立一個物件,輸出姓名,此時內容是正確輸出的

JS
let obj={
    name:'小明',
    age:12,
    sayname(){
	console.log(this.name); // 小明
        // console.log(`我是${name}`);
    }
}
obj.sayname();

Demo2:

在 sayname()函式中新增一個定時器,再次輸出this此時輸出的結果是window物件

但是在定時器之外輸出this.name 輸出內容是 小明

JS
let obj={
    name:'小明',
    age:12,
    sayname(){
	console.log(this.name); // 小明
	setTimeout(function(){
		console.log(this); // window物件
	},500)
    }
}
obj.sayname();

Demo3:

那麼如果想讓其在定時器內輸出小明該怎麼做呢,普通函式可以通過傳值的方式實現

JS
let obj={
    name:'小明',
    age:12,
    sayname(){
	let self = this;
	setTimeout(function(){
		console.log(self.name); // 小明
	},500)
    }
}
obj.sayname();

Demo4:箭頭函式

JS
let obj = {
	name: '小明',
	age: 12,
	sayname() {
		setTimeout(() => {
		console.log('我是' + this.name);
	}, 500)
    }
}
obj.sayname();

區別說明:

  1. this 指向不同
  2. 普通函式,誰呼叫指向誰,this指向誰
  3. 箭頭函式,在哪裡定義函式,this指向誰