Thread View: pl.comp.lang.javascript
5 messages
5 total messages
Started by jivanmukta
Wed, 25 Jun 2014 14:20
newbie: Array.prototype.inArray
Author: jivanmukta
Date: Wed, 25 Jun 2014 14:20
Date: Wed, 25 Jun 2014 14:20
33 lines
1848 bytes
1848 bytes
Uczę się języka JavaScript:
<html>
<head>
<title>Test</title>
</head>
<body>
<script type="text/javascript">
Array.prototype.inArray = function(needle) {
for (var i = 0, len = this.length; i < len; i++) {
if (this[i] == needle) {
return true;
}
}
return false;
}
var a = [1, 2, 3];
document.write(a.inArray(2) ? '1' : '0');
</script>
</body>
To działa. Ale nie rozumiem właściwie dlaczego nie mogę dodać metody inArray do Array bezpośrednio. Przecież Array to obiekt.
Array.inArray = function(needle) {
for (var i = 0, len = this.length; i < len; i++) {
if (this[i] == needle) {
return true;
}
}
return false;
}
Mam problem z rozumieniem prototypów,
Re: newbie: Array.prototype.inArray
Author: NotBear
Date: Wed, 25 Jun 2014 15:03
Date: Wed, 25 Jun 2014 15:03
15 lines
1517 bytes
1517 bytes
W dniu 2014-06-25 16:20, jivanmukta@poczta.onet.pl pisze:
> Ale nie rozumiem właściwie dlaczego nie mogę dodać metody inArray do Array bezpośrednio. Przecież Array to obiekt.
Owszem, Array to obiekt, ale tylko dlatego, ze w JS niemal wszystko jest
obiektem :-). Array to konstruktor tablic. typeof Array zwraca 'function'.
Mozesz bezposrednio przypisac metode do konkretnej instancji tablicy, np:
var myArray = [];
myArray.inArray = function() {/*whatever*/}
Przypisanie do prototypu za to spowoduje, ze metoda bedzie dostepna we
wszystkich obiektach danego typu.
--
NotBear
Re: newbie: Array.prototype.inArray
Author: jivanmukta
Date: Wed, 25 Jun 2014 15:26
Date: Wed, 25 Jun 2014 15:26
4 lines
1540 bytes
1540 bytes
> Przypisanie do prototypu za to spowoduje, ze metoda bedzie dostepna we > wszystkich obiektach danego typu. Czyli właściwość prototype to takie super ze Smalltalka albo parent z PHP5, tak? Jeśli nie to czym się różni?
Re: newbie: Array.prototype.inArray
Author: Cezary Tomczyk
Date: Wed, 25 Jun 2014 20:12
Date: Wed, 25 Jun 2014 20:12
17 lines
1668 bytes
1668 bytes
W dniu 2014-06-25 17:03, NotBear pisze: > W dniu 2014-06-25 16:20, jivanmukta@poczta.onet.pl pisze: >> Ale nie rozumiem właściwie dlaczego nie mogę dodać metody inArray do >> Array bezpośrednio. Przecież Array to obiekt. > > Owszem, Array to obiekt, ale tylko dlatego, ze w JS niemal wszystko jest > obiektem :-). Array to konstruktor tablic. typeof Array zwraca 'function'. typeof jest dość ogólne :-) ja preferuję: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/toString#Using_toString_to_detect_object_type [...] -- Cezary Tomczyk http://www.ctomczyk.pl/
Re: newbie: Array.prototype.inArray
Author: Cezary Tomczyk
Date: Wed, 25 Jun 2014 20:13
Date: Wed, 25 Jun 2014 20:13
13 lines
1549 bytes
1549 bytes
W dniu 2014-06-25 17:26, jivanmukta@poczta.onet.pl pisze: >> Przypisanie do prototypu za to spowoduje, ze metoda bedzie dostepna we >> wszystkich obiektach danego typu. > > Czyli właściwość prototype to takie super ze Smalltalka albo parent z PHP5, tak? Jeśli nie to czym się różni? Lektura obowiązkowa: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/prototype -- Cezary Tomczyk http://www.ctomczyk.pl/
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads