javascript 如何找到(打印)Path2D对象?

m4pnthwp  于 2023-05-21  发布在  Java
关注(0)|答案(1)|浏览(142)

如何打印Path2D对象的名称?
var something= new Path2D(),然后按照绘图的代码执行。
然后我用if语句将变量test存储在另一个变量中。

if (ctx.isPointInPath(test, event.offsetX, event.offsetY)) {

    something = test ...

console.log(something) will give Path2D {}.

console.log(toString(something)) will give [object undefined].

console.log(JSON.stringify(something)) will give {}.
cwtwac6a

cwtwac6a1#

JavaScript不会像这样跟踪变量名。这是你需要自己实现的。
使用let test = new Path2D()创建Path 2D对象时,将在内存块中创建Path 2D对象。test并不“包含”对象,它只是一个指向对象内存地址的指针。当您将test存储到另一个变量(如let something = test)时,复制到something的唯一内容是对象的内存地址。存储是单向的-实际的Path 2D对象无法跟踪哪些变量保存其内存地址。从这个意义上说,Path 2D对象本身没有名称。只有保存其地址的变量的名称。
您将不得不使用一个额外的变量来跟踪“名称”。
例如:

let test = new Path2D()
let name = 'test'

...

if (ctx.isPointInPath(test, event.offsetX, event.offsetY)) {
    something = test
    name = 'something'
}

console.log( name )

相关问题