LazyDay
10/7/2017 - 3:55 PM

JS - Prototype

// Создаем объект
var product = {
	name: "Product",
	location: "Earth",
};

// Создаем конструктор
var Water = function (name, size){
	this.name = name;
	this.size = size;
};

// Указываем прототип для конструктора
var aquaMinerale = new Water("Аква минерале", 1); // Прототипом Water является Object

// Устанавливаем прототип для Water
Water.prototype = product;
var bonAqua = new Water("Бон аква", 0.5); // Прототипом Water является product 

// Получаем прототип переданного объекта Object.getPrototypeOf( obj )
var bonAquaProto = Object.getPrototypeOf(bonAqua);

bonAquaProto.name = "Water"; // Меняем свойство прототипа

// Проверка существования свойства объекта
var sizableWater = function( obj ){
	return obj.hasOwnProperty('size');
};


// Вывод всех св-й объекта с учетом прототипа
var getObjProperty = function ( obj ){
	var arr = [];

	for (var key in obj){
		// if(!obj.hasOwnProperty( key )) continue; // Выводит только св-в объекта без прототипных св-в
		arr.push(key + " = " + obj[key]);
	};

	return arr;
};

var bonAquaPropertyObj = getObjProperty(bonAqua);