Objects constructor:

    to have an "object type" that can be used to create many objects of one type.

The standard way to create an "object type" is to use an object constructor function.

 

<!DOCTYPE html>
<html>
<body>

<p id="demo"></p>

<script>
function person(first, last, age, eye) {
    this.firstName = first;
    this.lastName = last;
    this.age = age;
    this.eyeColor = eye;
}

var myFather = new person("John", "Doe", 50, "blue");
var myMother = new person("Sally", "Rally", 48, "green");

document.getElementById("demo").innerHTML =
"My father is " + myFather.age + ". My mother is " + myMother.age; 
</script>

</body>
</html>

 运行图如下:

 

The this Keyword

In JavaScript, the thing called this, is the object that "owns" the JavaScript code.

The value of this, when used in a function, is the object that "owns" the function.

The value of this, when used in an object, is the object itself.

The this keyword in an object constructor does not have a value. It is only a substitute for the new object.

The value of this will become the new object when the constructor is used to create an object.

 

 AND JavaScript Objects are Mutable

<!DOCTYPE html>
<html>
<body>

<p>JavaScript objects are mutable.</p>
<p>Any changes to a copy of an object will also change the original.</p>

<p id="demo"></p>

<script>
var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"}

var x = person;
x.age = 20;

document.getElementById("demo").innerHTML =
person.firstName + " is " + x.age + " years old.";
</script>

</body>
</html>

运行图如下: