Range#
Range.cloneRange()#
Metoda cloneRange()
klonuje dany zakres i zwraca referencję do nowej kopii.
Opis działania#
Samo wywołanie i poszczególne jego części najlepiej objaśnić na zapisie składniowym:
var clone_range = range.cloneRange();
gdzie poszczególne człony oznaczają:
- clone_range - referencja do nowego zakresu będącego kopią range.
- range - zakres będący obiektem kontekstu.
Algorytm wywołania metody cloneRange()
nie jest skomplikowany. Dla lepszego zrozumienia tematu prezentuję go w całości:
- Zwróć nowy obiekty typu
Range
z takim samym początkiem i końcem jak w obiekcie kontekstu.
Nowy obiekt zwracany przez metodę cloneRange()
jest kopiowany przez wartość, nie przez referencję, dlatego też każda zmiana w oryginale nie ma wpływu na kopię.
Prosty przykład:
<script>
// Tworzymy nowy zakres
var range = document.createRange();
document.write(range.startContainer); // [object HTMLDocument]
document.write("<br>");
document.write(range.endContainer); // [object HTMLDocument]
document.write("<br>");
document.write(range.startOffset); // 0
document.write("<br>");
document.write(range.endOffset); // 0
document.write("<br><br>");
// Tworzymy nowy zakres klonując 'range'
var clone = range.cloneRange();
document.write(clone.startContainer); // [object HTMLDocument]
document.write("<br>");
document.write(clone.endContainer); // [object HTMLDocument]
document.write("<br>");
document.write(clone.startOffset); // 0
document.write("<br>");
document.write(clone.endOffset); // 0
document.write("<br><br>");
document.write(range == clone); // false - dwa różne obiekty
</script>
Składnia Web IDL#
interface Range { [NewObject] Range cloneRange(); }
Specyfikacje i inne materiały#
Pasek społecznościowy