Skip to content
Akin C edited this page Aug 30, 2019 · 18 revisions

Welcome to the Javascript-mutable-data-and-prototypes- wiki!

This repository is part of a larger project!

◀️ PREVIOUS PROJECT| NEXT PROJECT ▶️


Javascripts prototype has its benefits, but the use of mutable data within prototype should be done with caution.

There exists also immutable(unchangeable) data.

🔖 The difference very simply put seems to lie in memory allocation.

Here follows an purely made up example of an immutable variable:

// Variable x has the memory ID 42 
var x = 5; 

// Variable x changed its memory ID to 666
x = 4;

🔖 Interpreting the listing above a mutable vaiable would have a fixed memory ID while an immutable has not.

Citate: "...Mutable is a type of variable that can be changed. In JavaScript, only objects and arrays are mutable, not primitive values..."1

I couldn't find a way to check the memory address of a js variable and my research lead me to believe that it ain`t easy to do :weary:!```

STILL IN WORK!


## Content
The user interaction part could look like the content as seen below by starting "**index.html**" in a web browser and interacting with its features.

![ERROR: No image found!](https://github.com/Incrementis/Javascript-mutable-data-and-prototypes-/blob/master/wiki_images/Figure1.gif)

* The black boxes represent states.
* The black spiral arrows represent transition.
* If a black arrow is left clicked then the next state would be reached or an error message would be shown.
* The error would only pop up if a state could not be reached from the current state. 
* "_Interface_" area would show the clicked transition if a state was successfully reached.

To use the project just download the files and execute "**index.html**". Note that all files(folders "**wiki_images**" and "**PaintNET**" excluded) should be placed in the same folder so that the functionality of the code is guaranteed.

The "**PaintNet**" folder contains **.pdn** files which can be opened and altered with [PaintNET](https://paint-net.en.softonic.com/) for simple picture editing.
Clone this wiki locally