I niektóre zmienne wchodzą do mojej funkcji.Czy można sprawdzić, czy zmienna js ma wartość d3?
Jeśli pierwszym z nich jest wybór d3, chcę go użyć, w przeciwnym razie chcę użyć domyślnego wyboru.
Jak sprawdzić, czy zmienna jest wyborem d3, czy nie?
I niektóre zmienne wchodzą do mojej funkcji.Czy można sprawdzić, czy zmienna js ma wartość d3?
Jeśli pierwszym z nich jest wybór d3, chcę go użyć, w przeciwnym razie chcę użyć domyślnego wyboru.
Jak sprawdzić, czy zmienna jest wyborem d3, czy nie?
Aby sprawdzić, czy zmienna sel
jest d3.selection:
var isselection = sel instanceof d3.selection;
Należy pamiętać, że odpowiedź na (sel instanceof d3.selection)
mowa powyżej, która jest zaopatrzona w docs: https://github.com/mbostock/d3/wiki/Selections#d3_selection, nie będzie działać w IE9.
to wyjaśnione tutaj: https://github.com/mbostock/d3/issues/851
Jest problem z IE9 i nie zostanie rozwiązany w D3. Obejście tego problemu można znaleźć w tym zatwierdzeniu: https://github.com/palantir/plottable/pull/637
zamiast tego używa się (typeof sel[0] !== "string")
. To nie jest tak jasne, ale będzie zależeć od tego, czy musisz wspierać IE9, czy nie.
Zwykle ludzie używają do tego celu ducktyping. To znaczy. sprawdź, czy zmienna ma wymagane właściwości, a następnie załóż, że jest to obiekt, którego szukasz, jeśli ma określone właściwości. – ThiefMaster
Cóż, aktualna metoda ponownego wiązania jest abstrakcyjna, ponieważ nie chcę powtarzać tego kodu w kółko (jedna z tych funkcji, które zwracają transakcje funkcji). Obecnie sprawdzam 'd3SelectorOrNot.selectAll', ale wydaje się to dość grube. Większość innych bibliotek, z którymi pracowałem, udostępnia funkcję 'isMyLibraryObject()'. Mam nadzieję, że d3 też to zrobi, po prostu nie mogę tego znaleźć. –