Odpowiedź jest dość dużo tam na stronie MDN samego:
„Jeśli zdecydujesz się skorzystać z tej częściowej realizacji, nie wolno powoływać się na tych przypadkach, w których zachowanie odbiega od ECMA-262, 5th Edition z niektórych jednak opieka (i być może z dodatkowymi modyfikacjami dostosowanymi do konkretnych potrzeb), ta częściowa implementacja może być rozsądnym pomostem do czasu, kiedy bind() jest szeroko implementowany zgodnie ze specyfikacją. "
Nie ma nic złego w podkładce MDN jako takiej. Jeśli jednak zdecydujesz się na użycie podkładki, upewnij się, że nie może ona zostać nadpisana przez inne biblioteki. Jakiś czas temu miałem problem z tym, że Strophe właśnie to zrobił i zastąpił jedną podkładkę drugą.
Zwykle używam podkreślnika, aby objąć takie rzeczy, ale są też inne opcje, takie jak es5shim. Z podkreśleniem masz metodę o nazwie (zgadłeś) ".bind" i działa trochę inaczej niż podkładka MDN (używa "nowego" wywołania). Podsumowanie ma również świetną metodę o nazwie " .partial", która może być przydatna w scenariuszach, w których nie chcesz zmieniać wartości "tego", ale częściowo zastosować argumenty.
Chodzi mi tutaj o to, że zamiast przycinania, może zajrzeć do czegoś, co jest odpowiednio chronione/zamknięte w bibliotece. Prawdopodobnie będziesz potrzebował więcej niż jednego podkładki, jeśli kierujesz reklamy na przeglądarki takie jak IE8.
Wreszcie, i nie tak ważne sprawdzeniu testów wydajności w: http://jsperf.com/browser-vs-es5-shim-vs-mdn-shim
próbowałaś kod zgodności ich dostarczenia na stronie MDN? https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Function/bind – Sebas
Tak, i wygląda na to, że działa dobrze. Ale czy mogę być pewny, że tak jest w każdych okolicznościach? – BAK
Nie jest to DUŻA okoliczność, ale większość. – backdesk