題目:
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);
}};