Javascriptオブジェクト定義-基本知識

javascriptオブジェクト使い Javascript

JavaScript のオブジェクトについての基本です。

オブジェクト – Objectの生成

var obj = {}; // 空のオブジェクト
var obj = {propertyName: value, propertyName: value, … };

var
obj = new Object();
var obj = Object();
var obj = Object.create(Object.prototype);
var obj = Object.create({});

関数でObject生成ES5

①事前に関数を定義する方法:

function Person(name, age) {
    this.name = name;
    this.age = age;
}
Person.prototype.say = function(msg) {
    console.log(this.name + ‘ say:’ + msg);
}

実行:
var per1 = new Person(‘test1’, 20);
per1.say(‘test msg’);

②無名関数で定義する方法:
var per1 = new function() {
    this.name = ”;
    this.age = 0;
}

per1.say = function(msg) {
    console.log(this.name + ‘ say:’ + msg)
}

per1.init = function(name, age) {
    this.name = name;
    this.age = age;
}

実行:
per1.init(‘test1’, 23);
per1.say(‘test msg’);

クラスでObject生成ES6

class Person {
    constructor(name, age) {
      this.name = name;
      this.age = age;
    }
    say(msg) {
      console.log(this.name + ‘ say:’ + msg);
    }
    static run() {
      console.log(‘run ….’);
    }
}

var per1 = new Person(‘test1’, 20);
per1.say(‘test msg’);

Person.run();

継承ES5

//方法①
function Person() {
    this.name = ‘Person’;
}

Person.prototype.say = function(msg) {
    console.log(this.name + ‘ say:’ + msg);
}
function Player() {

}

Player.prototype = new Person();
Player.prototype.constructor = Player;

var play1 = new Player();
console.log(play1.name);
play1.say(‘test msg’);

//方法②
function Person() {
    this.name = ‘Person’;
}
Person.prototype.say = function(msg) {
    console.log(this.name + ‘ say:’ + msg);
}
function Player() {
    Person.call(this);
    //Person.apply(this);
    //Persion.bind(this)();
}

var play1 = new Player();
console.log(play1.name);
//play1.say(‘test msg’); // error

//方法③
function Person(name, age) {
    this.name = name;
    this.age = age;
}

var pers1 = new Person(‘test1’, 23);

var player = Object.create(pers1);
console.log(player.name);

継承ES6

class Person {
    constructor(name, age) {
      this.name = name;
      this.age = age;
    }
    say(msg) {
      console.log(this.name + ‘ Person say:’ + msg);
    }
}

class Player extends Person {
    constructor(name, age) {
      super(name, age);
      this.name = name;
      this.age = age;
    }

    say(msg) {
      super.say(msg);
      console.log(this.name + ‘ Player say:’ + msg);
    }
}

var play1 = new Player(‘test1’, 32);
play1.say(‘test msg’);

タイトルとURLをコピーしました