iT邦幫忙

0

js的class無法讀取

  • 分享至 

  • xImage

https://ithelp.ithome.com.tw/upload/images/20220525/20146206RtyfQF4LNP.jpg
請問為什麼class裡面的呼叫this.bottom是undefined,上面已經賦值了。

greenriver iT邦研究生 5 級 ‧ 2022-05-25 14:06:38 檢舉
記錯了(別理我)
greenriver iT邦研究生 5 級 ‧ 2022-05-25 14:07:53 檢舉
記錯了(別理我)
greenriver iT邦研究生 5 級 ‧ 2022-05-25 17:01:21 檢舉
this 的回傳值,跟你在哪呼叫set()有關。你需要提供在哪裡使用set(),才能知道會回傳甚麼
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 個回答

0
bubu61509
iT邦見習生 ‧ 2022-05-25 13:27:19

js this 跟其他語言定義不一樣,可以找找文件來看.
https://developer.mozilla.org/zh-TW/docs/Web/JavaScript/Reference/Operators/this

要把 class 裡面 function 的 this 綁到 instance 可以用 :

  1. constructor 裡面指定 function 用 bind this.
this.set.bind(this);
  1. function 改用 arrow funtion 定義 :
   set = () => {...}
let make = new makeAShape()
make.set()
0
fillano
iT邦超人 1 級 ‧ 2022-05-25 15:54:26

最精簡的例子:

class Me {
    constructor() {
        this.name = 'fillano';
    }
    show() {
        console.log(this.name);
    }
}
let me = new Me();
me.show();//print 'fillano'

所以你怎麼呼叫你的set方法的?

let make = new makeAShape()
make.set()

我要發表回答

立即登入回答