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