![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 910 Pomógł: 44 Dołączył: 20.02.2008 Skąd: Łódź Ostrzeżenie: (20%) ![]() ![]() |
Witajcie, przejdę do konkretów.
Rezultat tego o to kodu jest taki, że <body> posiada 2 atrybuty, jeden o kluczu 'atrybut', drugi o kluczu 'test'. Niby prawidłowe zachowanie, ale zupełnie nie potrzebne w tym przypadku. Pytanie brzmi jak do jQuery'owego attr przekazać obiekt tak by prototypowane właściwości były nie widoczne? Ten post edytował Mlodycompany 27.05.2015, 16:18:14 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 268 Pomógł: 254 Dołączył: 11.06.2009 Skąd: Świętochłowice Ostrzeżenie: (0%) ![]() ![]() |
Hmm… a czy Ty wgl wiesz co robisz, gdy rozszerzasz Object.prototype?
Atrybuty i własności obiektu DOM z założenia są widoczne, więc nie widzę za bardzo powodu, dla którego miałyby nie być widoczne. Jeśli mają być niewidoczne, to prawdopodobnie kombinujesz nie w tym kierunku, co trzeba. -------------------- ★Mój blog || Okiem krytyka★
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 910 Pomógł: 44 Dołączył: 20.02.2008 Skąd: Łódź Ostrzeżenie: (20%) ![]() ![]() |
rozszerzając Object.prototype rozszerzam każdy obiekt o tą własność. To wiem. To że każdy atrybut DOM jest widoczny to też wiem. Zastanawiam się tylko czemu jQuery.attr nie bierze tylko własnych właściwości obiektu, lecz dorzuca te z prototypu. Skoro uważasz, że kombinuje nie w tym kierunku, to czy mógłbyś mnie naprowadzić jak osiągnąć zamierzony cel?
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 1 268 Pomógł: 254 Dołączył: 11.06.2009 Skąd: Świętochłowice Ostrzeżenie: (0%) ![]() ![]() |
Z prostej przyczyny - wszystko, co ordynarnie wrzucasz do Object.prototype jest własnością typu enumerable, więc zwykła pętla to wykryje.
Jak to robić? Nie tykać Object.prototype, bo to proszenie się o kłopoty - zawsze. Prawdę mówiąc nie umiem nawet wymyślić dobrego powodu, dla którego chciałbyś zrobić coś takiego. Ale jeśli uważasz, że na pewno musisz to zrobić (uwierz mi - nie musisz ![]() -------------------- ★Mój blog || Okiem krytyka★
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 910 Pomógł: 44 Dołączył: 20.02.2008 Skąd: Łódź Ostrzeżenie: (20%) ![]() ![]() |
To że Object.protype to zło to wiem nie od dziś, ale nadeszła ta chwila kiedy chciałbym zgłębić tego tajniki, więc siedzę i "rzeźbie". Po co taki sposób? Chciałbym w każdym obiekcie mieć swoją metodę. I tyle. Wiem, że mógłbym ją prototypować to 'swoich obiektów', ale w przypadku N obiektów robi się to już problematyczne.
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 1 268 Pomógł: 254 Dołączył: 11.06.2009 Skąd: Świętochłowice Ostrzeżenie: (0%) ![]() ![]() |
No to w takim wypadku i tak polecałbym stworzenie sobie podstawowej klasy i "dziedziczenie" z niej przy pomocy Object.create: http://jsfiddle.net/Comandeer/zL05ysqk/ O wiele bezpieczniejsze.
-------------------- ★Mój blog || Okiem krytyka★
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 910 Pomógł: 44 Dołączył: 20.02.2008 Skąd: Łódź Ostrzeżenie: (20%) ![]() ![]() |
Git majonez. Rozwiałeś moje wątpliwości a wraz z tym problem. Powiedz mi jeszcze czy tylko prototypowanie Object'a jest takie problematyczne czy innych obiektów też?
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 1 268 Pomógł: 254 Dołączył: 11.06.2009 Skąd: Świętochłowice Ostrzeżenie: (0%) ![]() ![]() |
Wszystkich wbudowanych - tak. Jedynie polyfillowanie jest wskazane
-------------------- ★Mój blog || Okiem krytyka★
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 18.07.2025 - 09:07 |