gpt4 book ai didi

javascript - LeafletJS 中的扩展是如何工作的以及为什么我需要中间属性才能使其正常工作?

转载 作者:行者123 更新时间:2023-11-28 00:29:33 26 4
gpt4 key购买 nike

首先,这可能不是一个LeafletJS问题,而是一个纯粹的JS问题,但直到Leaflet我才遇到它。

我最近一直在尝试使用 Leaflet,并且在某些时候想要将 Control 对象的扩展版本传递给函数(对于那些也使用 Java 或类似语言的人来说,我试图做一些类似的事情,实例化一个匿名类)。

所以:

给定类 L.Control(我想用方法 x 扩展它),我尝试了:

func(new L.Control.extend({x: function() {}})());

它惨遭失败,因为函数func的参数未定义。

但是:

var v = L.Control.extend({x: function() { }}); 
func(new v());

工作完美,因为 new v() 按预期返回一个带有额外 x 函数的 L.Control 对象。

底线:两个代码片段之间有什么区别以及如何使其与单行代码一起工作(如果可能)?

谢谢!

最佳答案

经过一番实验,我自己弄清楚了。

问题是由于操作顺序造成的,解决方案是添加一组括号,单行代码变为:

func(new (L.Control.extend({x: function() {}}))());

关于javascript - LeafletJS 中的扩展是如何工作的以及为什么我需要中间属性才能使其正常工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29138975/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com