Javascript Basics, Objects intro

by Ryan Morris

JavaScript

// Everything is an object

/**
 * Creating Objects
 */

// 1) an object literal
var myFirstObject = {

    firstName: "Ryan",
    lastName: "Morris",

    42: "Secret to life",

    setName: function (first, last) {
        
        this.firstName = first;
        this.lastName = last;
        
        // return this.firstName + " " + this.lastName;
        
    }

};

// console.log(myFirstObject);
// console.log(myFirstObject.firstName);
// console.log(myFirstObject.setName("Jim", "Bob");

// 2) Constructor method

var mySecondObject = new Object();
mySecondObject.firstName = "Ryan";
mySecondObject.lastName = "Morris";
mySecondObject.setName = function(first, last) {
     this.firstName = first;
    this.lastName = last;
    return this.firstName + " " + this.lastName;
}

// Define your own constructor with a function (which is an object)

var myConstructor = function(first, last) {
     
    this.firstName = first;
    this.lastName = last;
    
    this.setName = function(first, last) {
        this.firstName = first;
        this.lastName = last;
        return this.firstName + " " + this.lastName;
    }
    
}

var myThirdObject = new myConstructor("Ryan", "Morris");

// 3) Object.create() ie9+

var Person = {
    firstName: "Ryan",
    lastName: "Morris",

    42: "Secret to life",

    setName: function (first, last) {
        
        this.firstName = first;
        this.lastName = last;
        
        // return this.firstName + " " + this.lastName;
        
    }
}

// create a new object with a prototype of 'Person'
var ryan = Object.create(Person);

// you can include properties to merge like so:
var jim = Object.create(Person, {
    firstName: {value: "Jim"},
    lastName: {value: "Bob"}
});