Git與通過Git新增提交檔案
阿新 • • 發佈:2022-05-04
普通函式
語法格式:function(){}
箭頭函式
語法格式:() => {}
()中定義引數,如果只有一個引數,可以不寫括號
{}中寫函式體,如果函式體中只有返回值,可以不寫return
Demo01普通函式:
建立一個物件,輸出姓名,此時內容是正確輸出的
JSlet obj={
name:'小明',
age:12,
sayname(){
console.log(this.name); // 小明
// console.log(`我是${name}`);
}
}
obj.sayname();
Demo2:
在 sayname()函式中新增一個定時器,再次輸出this此時輸出的結果是window物件
但是在定時器之外輸出this.name 輸出內容是 小明
JSlet obj={
name:'小明',
age:12,
sayname(){
console.log(this.name); // 小明
setTimeout(function(){
console.log(this); // window物件
},500)
}
}
obj.sayname();
Demo3:
那麼如果想讓其在定時器內輸出小明該怎麼做呢,普通函式可以通過傳值的方式實現
JSlet obj={
name:'小明',
age:12,
sayname(){
let self = this;
setTimeout(function(){
console.log(self.name); // 小明
},500)
}
}
obj.sayname();
Demo4:箭頭函式
JSlet obj = {
name: '小明',
age: 12,
sayname() {
setTimeout(() => {
console.log('我是' + this.name);
}, 500)
}
}
obj.sayname();
區別說明:
- this 指向不同
- 普通函式,誰呼叫指向誰,this指向誰
- 箭頭函式,在哪裡定義函式,this指向誰