iT邦幫忙

2022 iThome 鐵人賽

DAY 18
0

進階

第1筆雖傳入數字與字串但this是物件所以會轉換成物件

fn.call(1, '小明', '小華');
fn.call('文字', '小明', '小華');
fn.call(undefined, '小明', '小華');

第三行遵循嚴格模式

嚴格模式

  • 加入'use strict'即可運作
  • 並不會影響不支援嚴格模式的瀏覽器
  • 可依據執行環境設定'use strict'
  • 透過拋出錯誤的方式消除一些安靜的錯誤(防止小錯誤)
  • 禁止使用一些有可能被末來版本 ECMAScript 定義的語法

例1 (嚴格模式下不能直接對變數宣告)

(function() {
    'use strict'; //執行嚴格模式
    a = '小明';
}) ():

例2

function callStrict(part1, part2) {
    'use strict';
    console.log(this, typeof this, part1, part2);
}

callStrict.call(1, '小明', '小華'); //維持數字1不會變成建構式
callStrict.call(undefined, '小明', '小華'); //維持undefined不會變成建構式
callStrict('小明', '小華');//簡易呼叫會輸出上次抓到的值

補充

DOM:

<button onclick="console.log(this)">這是一個按鈕</button>
//log改成dir可以輸出button


上一篇
THIS I
下一篇
DOM (Document Object Model) I
系列文
JavaScript亂記30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言