1
首先,这可能不是一个LeafletJS问题,而是一个单纯的JS问题,但直到Leaflet才发现它。在LeafletJS中如何扩展工作?为什么需要中介属性才能正常工作?
最近我一直在试验Leaflet,并且在某些时候想传递一个控制对象的扩展版本的函数(对于那些也使用Java或类似语言的人,我试图做类似的实例化一个匿名类)。
所以:
鉴于类L.Control(我想和方法X延伸),我尝试:
func(new L.Control.extend({x: function() {}})());
从而未能惨,因为该函数的参数是func
未定义。
但是:
var v = L.Control.extend({x: function() { }});
func(new v());
作品完美,为new v()
回报,符合市场预期,一个L.Control
对象有一个额外的X功能。底线:两段代码之间的区别是什么,以及如何使它与单行(如果可能)一起工作?
谢谢!
如果你不打算改变类的方法之一,只有将函数添加到应该使用'include'方法的类中:'L.Control.include({'x':function(){}});' – iH8 2015-03-19 11:13:49