オブジェクト(JavaScript)は僕を混乱させる。

整理するため、まずオブジェクトを、はじめから用意されているコンストラクタを使用する「ネイティブ型」と、
じぶんで作った関数をオブジェクト化する「オレオレ型」(こちらはの呼び方はじぶんで勝手につけた)。

「オレオレ型」はこんなふう。

まず任意の関数を書いてみよう。

var Oreore = function(){
   var curray = ‘オレはカレーが好きだ!’;
   console.log(curray);
 }

var oreore = new Oreore(39);

「ネイティブ型」には、newに続く9種類のコンストラクタがはじめから用意されている。

Number();

String();

Boolearn();

Object();

Array();

Function();

Date();

RegExp();

Error();

たとえばこんなふうに書く。

var num = new String(39);

new演算子とStringを略して、ショートカット的に

var num =39;

というふうに書くこともできる。これをリテラルという。

ネイティブ型のうちNumber()、String()、Boolean()には、1、’apple’、trueといった最小単位のプリミティブ値を入れるが、

一方のObject()、Function()、プリミティブ値だけでなく、オブジェクトの格納できてしまう。この書き方をリテラル・オブジェクトという。

ちなみに前者は値渡し、後者は参照渡しされる。

var myObj = {
   hello:function(){
    console.log(‘hello’);
  };
};

myObj.hello();
>hello