オブジェクト(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