iT邦幫忙

2024 iThome 鐵人賽

DAY 3
0
自我挑戰組

認識JavaScript系列 第 3

[第三天] 試著解題 2619. Array Prototype Last

  • 分享至 

  • xImage
  •  

題目:

Write code that enhances all arrays such that you can call the array.last() method on any array and it will return the last element. If there are no elements in the array, it should return -1.
You may assume the array is the output of JSON.parse.

以粗淺的理解是:請寫出能拋出陣列中最後一值,若是沒有,請拋出-1。

第一次:

Array.prototype.last = function() {
    if (Array.length > 0)
        return Array[Array.length - 1];
    else
        return -1;
};

當然是華麗的失敗啦!output: undefined

undefined是誰沒有定義呢?
Array吧! 這是一個構造函數,簡單點就是特殊字,再換個想法是,他也不算是個物件吧!
那還能怎麼改呢?於是我想到了 this

第二次:

Array.prototype.last = function() {
    if (this.length > 0)
        return Array[this.length - 1];
    else
        return -1;
};

成功!

檢討:
this在javascript是個常見的存在,而在使用上也需時常注意代表了那些物件。
this -> 指向當前上下文的對象。

有時會指向 window

console.log(this);

有時又能指向物件

const person = {
    name: "Irene",
    callName: function() {
    console.log(this.name);
    }};

上一篇
[第二天] Click事件
下一篇
[第四天] PageMethods
系列文
認識JavaScript30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言