// Объект - это набор свойств, которые представляют собой пару имя - значение.
// Они разделяются : и перечисляются через запятую.
/* {
имя: значение,
имя: значение,
имя: значение,
} */
// Здесь может какое угодно кол-во таких пар.
/* {
name: "Sorax",
age: 20,
gender: "male"
} */
// Это называется объектным литералом. Литерал - один из способов создания объекта.
// Мы можем присвоить этот объект переменной и обращаться через нее к отдельным свойствам этого объекта.
var person = {
name: "Sorax",
age: 20,
gender: "male",
sayHi: function() {
return "Hello!";
}
}
console.log(person.name); // Sorax
// Свойства объекта также можно называть их полями.
console.log(person.gender); // male. Это выражение обращения или выражение доступа.
/*
Выражение обращения имеет два синтаксиса:
выражение.идентификатор
выражение[выражение]
*/
console.log(person["age"]); // 20
// При помощи этих выражений мы можем менять значения свойств объекта и добавлять новые свойства
// Свойства можно добавлять на лету. Это возможно не во всех языках.
person.age = 25;
person.userID = 222335;
// Выведем объект в консоль
console.log(person); // Object { name: "Sorax", age: 25, gender: "male", userID: 222335 }
// Значением любого свойства может быть функция. Такое свойство называют методом.
// Точнее сказать, что в JS нет методов, мы просто делаем функции значениями каких-то свойств.
console.log(person.sayHi()); // Hello!
// ОБЪЕКТЫ МОЖНО СОЗДАТЬ ПРИ ПОМОЩИ ФУНКЦИИ КОНСТРУКТОРА И ОПЕРЕТОРА NEW
// Раньше объект создавался так
var object = new Object();
object.property = "value";
// Но с объектным литералом это делать проще и синтаксис получается короче:
// Создать объект можно статическим методом create класса object
//var object = Object.create(null); // если мы не хотим, чтобы новый объект наследовал свойства, то передаем null
//console.log(object); // Object { }
var object = Object.create({x:1, y:2});
console.log(object); //
console.log(object.hasOwnProperty("x")); // false - проверяет есть ли объекта свойство x
object.x = 20; // если мы добавим это свойство к объекту
console.log(object.hasOwnProperty("x")); // true
// УДАЛЕНИЕ СВОЙСТВ У ОБЪЕКТА: delete выражение
// Оператором delete можно удалить родные не наследованные свойства объекта
delete object.x;
console.log(object);
// Проверим наличие свойства в объекте оператором in
console.log("x" in object); // true
console.log("o" in object); // false
console.log(object.x); // 1
console.log(object.o); // undefined
console.log(object.z); // undefined
console.log("z" in object); // false
object.z = undefined;
console.log(object.z); // undefined
console.log("z" in object); // true
////////
https://msdn.microsoft.com/ru-ru/library/ff925952(v=vs.94).aspx
///////
Синтаксис
Параметры
Возвращаемое значение
Исключения
// Они разделяются : и перечисляются через запятую.
/* {
имя: значение,
имя: значение,
имя: значение,
} */
// Здесь может какое угодно кол-во таких пар.
/* {
name: "Sorax",
age: 20,
gender: "male"
} */
// Это называется объектным литералом. Литерал - один из способов создания объекта.
// Мы можем присвоить этот объект переменной и обращаться через нее к отдельным свойствам этого объекта.
var person = {
name: "Sorax",
age: 20,
gender: "male",
sayHi: function() {
return "Hello!";
}
}
console.log(person.name); // Sorax
// Свойства объекта также можно называть их полями.
console.log(person.gender); // male. Это выражение обращения или выражение доступа.
/*
Выражение обращения имеет два синтаксиса:
выражение.идентификатор
выражение[выражение]
*/
console.log(person["age"]); // 20
// При помощи этих выражений мы можем менять значения свойств объекта и добавлять новые свойства
// Свойства можно добавлять на лету. Это возможно не во всех языках.
person.age = 25;
person.userID = 222335;
// Выведем объект в консоль
console.log(person); // Object { name: "Sorax", age: 25, gender: "male", userID: 222335 }
// Значением любого свойства может быть функция. Такое свойство называют методом.
// Точнее сказать, что в JS нет методов, мы просто делаем функции значениями каких-то свойств.
console.log(person.sayHi()); // Hello!
// ОБЪЕКТЫ МОЖНО СОЗДАТЬ ПРИ ПОМОЩИ ФУНКЦИИ КОНСТРУКТОРА И ОПЕРЕТОРА NEW
// Раньше объект создавался так
var object = new Object();
object.property = "value";
// Но с объектным литералом это делать проще и синтаксис получается короче:
// Создать объект можно статическим методом create класса object
//var object = Object.create(null); // если мы не хотим, чтобы новый объект наследовал свойства, то передаем null
//console.log(object); // Object { }
var object = Object.create({x:1, y:2});
console.log(object); //
console.log(object.hasOwnProperty("x")); // false - проверяет есть ли объекта свойство x
object.x = 20; // если мы добавим это свойство к объекту
console.log(object.hasOwnProperty("x")); // true
// УДАЛЕНИЕ СВОЙСТВ У ОБЪЕКТА: delete выражение
// Оператором delete можно удалить родные не наследованные свойства объекта
delete object.x;
console.log(object);
// Проверим наличие свойства в объекте оператором in
console.log("x" in object); // true
console.log("o" in object); // false
console.log(object.x); // 1
console.log(object.o); // undefined
console.log(object.z); // undefined
console.log("z" in object); // false
object.z = undefined;
console.log(object.z); // undefined
console.log("z" in object); // true
////////
https://msdn.microsoft.com/ru-ru/library/ff925952(v=vs.94).aspx
///////
Функция Object.create (JavaScript)
Создает объект, который имеет указанный прототип и (необязательно) содержит указанные свойства.
Синтаксис
Object.create(prototype, descriptors)
Параметры
- prototype
- Обязательное. Объект для использования в качестве прототипа. Может принимать значение null.
- descriptors
- Необязательный параметр. Объект JavaScript, содержащий один или несколько дескрипторов свойств.
Свойство данных — это свойство, которое может получать и задавать значение. Дескриптор свойства данных содержит атрибут value, а также атрибуты writable, enumerable и configurable. Если последние 3 атрибута не заданы, по умолчанию они получают значение false. Свойство метода доступа вызывает предоставленную пользователем функцию при каждом получении или задании значения. Дескриптор свойства метода доступа содержит атрибут set, атрибут get или оба эти атрибута. Для получения дополнительной информации см. Функция Object.defineProperty (JavaScript).
Возвращаемое значение
Новый объект с указанным внутренним прототипом, содержащий указанные свойства, если они были предоставлены.
Исключения
Исключение TypeError создается при выполнении любого из следующих условий:
Комментарии
Поддерживается в следующих режимах документов: стандартный режим Internet Explorer 9, стандартный режим Internet Explorer 10 и стандартный режим Internet Explorer 11. Также поддерживается в приложениях Магазина (Windows 8 и Windows Phone 8.1). См. Сведения о версии.
Не поддерживается в следующих режимах документов: случайный режим, стандартный режим Internet Explorer 6, стандартный режим Internet Explorer 7, стандартный режим Internet Explorer 8.
- Аргумент prototype не является объектом и не имеет значение null.
- Дескриптор в аргументе descriptors имеет атрибут value или writable и атрибут get или set.
- Дескриптор в аргументе descriptors имеет атрибут get или set, который не является функцией.
Комментарии
Эту функцию можно использовать с параметром null prototype, чтобы прекратить использование цепи прототипов. Созданный объект не будет иметь прототипа.
Пример
В следующем примере создается объект с использованием прототипа null и добавлением двух перечислимых свойств.
var newObj = Object.create(null, { size: { value: "large", enumerable: true }, shape: { value: "round", enumerable: true } }); document.write(newObj.size + "<br/>"); document.write(newObj.shape + "<br/>"); document.write(Object.getPrototypeOf(newObj)); // Output: // large // round // null
Пример
В следующем примере создается объект, имеющий тот же внутренний прототип, что и объект Object. Как видно, он имеет тот же прототип, что и объект, созданный с использованием литерала объекта. Функция Object.getPrototypeOf получает прототип исходного объекта. Чтобы получить дескриптор свойства объекта, можно использовать функцию Функция Object.getOwnPropertyDescriptor (JavaScript).
var firstLine = { x: undefined, y: undefined }; var secondLine = Object.create(Object.prototype, { x: { value: undefined, writable: true, configurable: true, enumerable: true }, y: { value: undefined, writable: true, configurable: true, enumerable: true } }); document.write("first line prototype = " + Object.getPrototypeOf(firstLine)); document.write("<br/>"); document.write("second line prototype = " + Object.getPrototypeOf(secondLine)); // Output: // first line prototype = [object Object] // second line prototype = [object Object]
Пример
В следующем примере создается объект, имеющий тот же внутренний прототип, что и объект Shape.
// Create the shape object. var Shape = { twoDimensional: true, color: undefined, hasLineSegments: undefined }; var Square = Object.create(Object.getPrototypeOf(Shape));
Требования
Поддерживается в следующих режимах документов: стандартный режим Internet Explorer 9, стандартный режим Internet Explorer 10 и стандартный режим Internet Explorer 11. Также поддерживается в приложениях Магазина (Windows 8 и Windows Phone 8.1). См. Сведения о версии.
Не поддерживается в следующих режимах документов: случайный режим, стандартный режим Internet Explorer 6, стандартный режим Internet Explorer 7, стандартный режим Internet Explorer 8.
Комментариев нет:
Отправить комментарий