នៅក្នុងកម្មវិធី SvelteKit នៅក្នុងបរិបទនៃប្រតិភាព ការដោះដូរតំលៃរបស់កំរងទិន្នន័យណាមួយតាមរយៈវិធី push( ), pop( ), shift( ), unshift( ) និង splice( ) នឹងមិនធ្វើអោយកំរងនោះមានការផ្លាស់ប្តូរឬមានលក្ខណៈប្រតិភាពឡើយ។
<script>
let numbers = [1, 2, 3, 4];
function addNumber() {
numbers.push(numbers.length + 1);
}
$: sum = numbers.reduce((total, currentNumber) => total + currentNumber, 0);
</script>
<p>{numbers.join(' + ')} = {sum}</p>
<button on:click={addNumber}>
Add a number
</button>
តំលៃរបស់កំរងទិន្នន័យអាចត្រូវផ្លាស់ប្តូរបាន លុះត្រាណាតែមានការប្រើប្រាស់សញ្ញាស្មើនៅក្នុងនោះ។
<script>
let numbers = [1, 2, 3, 4];
function addNumber() {
numbers = [...numbers, numbers.length + 1];
}
$: sum = numbers.reduce((total, currentNumber) => total + currentNumber, 0);
</script>
<p>{numbers.join(' + ')} = {sum}</p>
<button on:click={addNumber}>
Add a number
</button>
ស្រដៀងគ្នាដែរ ការផ្លាស់ប្តូតំលៃនៃលក្ខណៈ (property) ណាមួយនៅក្នុងសំណុំទិន្នន័យមួយដែលស្ថិតនៅក្នុងសំណុំទិន្នន័យមួយទៀត នឹងមិនបង្កអោយមានលក្ខណៈប្រតិភាពឡើយ។
<script>
let obj = {
foo: { bar: '' }
}
const foo = obj.foo
function updateFoo() {
foo.bar = 'baz'
}
</script>
<h2>
Hello {obj.foo.bar}
</h2>
<button on:click={updateFoo}>
Update
</button>
<pre>
{JSON.stringify(obj)}
</pre>
លក្ខណៈប្រតិភាពអាចកើតឡើងបាន ល្គិកណាមានការប្រើប្រាស់សញ្ញាស្មើដើម្បីផ្តល់តំលៃថ្មីអោយសំណុំទិន្នន័យដើម។
<script>
let obj = {
foo: { bar: '' }
}
const foo = obj.foo
function updateFoo() {
foo.bar = 'baz'
obj = obj
}
</script>
<h2>
Hello {obj.foo.bar}
</h2>
<button on:click={updateFoo}>
Update
</button>
<pre>
{JSON.stringify(obj)}
</pre>