Tebaeleven / svg_blocks

https://tebaeleven.github.io/svg_blocks/src/v3_class/
0 stars 0 forks source link

独自DOMにアクセスする際にletが良いのかthisが良いのか #8

Open Tebaeleven opened 1 year ago

Tebaeleven commented 1 year ago

問題

class Block{
    constructor(x, y, width, height, fill, stroke) {
        this.element = BlockDom.cloneNode(true);
        this.x = x
        this.y = y
        this.isTopBlock=false
        this.parent = null
        this.children = null
        this.isDrag = false

        let self = this

        let rect = this.element.getElementsByTagName("rect")
        rect[0].setAttribute("width", width)
        rect[0].setAttribute("height", height)
        rect[0].setAttribute("fill", fill)
        rect[0].setAttribute("stroke", stroke)

letで要素指定するのかthisなのか。

懸念点

Tebaeleven commented 1 year ago

ChatGPT

image

let かthisどちらの方がパフォーマンスが良いですか?
一般的には、プロパティにアクセスする場合には `this` を使用することが推奨されます。なぜなら、プロパティにアクセスする際に毎回 `let` で新しい変数を作成すると、メモリ消費量が増加するため、パフォーマンスに影響を与える可能性があるからです。

ただし、`let` で変数を作成する場合でも、パフォーマンスに重大な影響を与えるほど遅くなることはほとんどありません。したがって、パフォーマンスに関しては、どちらの方法でもほとんど問題ありません。ただし、コードの可読性や保守性を考えると、プロパティにアクセスする際には `this` を使用することをお勧めします。