Baseline Widely available
ÐоÑÑÑп к ÑвойÑÑвам обÑекÑа можно полÑÑиÑÑ, иÑполÑзÑÑ ÑоÑеÑнÑÑ Ð¸ ÑкобоÑнÑÑ Ð·Ð°Ð¿Ð¸Ñи.
ÐнÑеÑакÑивнÑй пÑимеÑconst person1 = {};
person1["firstname"] = "Mario";
person1["lastname"] = "Rossi";
console.log(person1.firstname);
// Expected output: "Mario"
const person2 = {
firstname: "John",
lastname: "Doe",
};
console.log(person2["lastname"]);
// Expected output: "Doe"
СинÑакÑиÑ
object.property object["property"]ÐпиÑание
Ðожно дÑмаÑÑ Ð¾Ð± обÑекÑе как об аÑÑоÑиаÑивном маÑÑиве (или каÑÑе, ÑловаÑе, Ñ ÑÑ-ÑаблиÑе, ÑаблиÑе поиÑка). ÐлÑÑи в Ñаком маÑÑиве - ÑÑо имена ÑвойÑÑв обÑекÑа.
Ðогда ÑеÑÑ Ð¸Ð´ÑÑ Ð¾ ÑвойÑÑваÑ
обÑекÑа, обÑÑно ÑазлиÑаÑÑ ÑобÑÑвенно ÑвойÑÑва и меÑодÑ. Ðднако Ñазделение ÑвойÑÑво/меÑод ÑÑо не более Ñем ÑÑловноÑÑÑ. ÐеÑод - ÑÑо пÑоÑÑо ÑвойÑÑво, коÑоÑое можно вÑзваÑÑ (напÑимеÑ, еÑли оно ÑодеÑÐ¶Ð¸Ñ ÑÑÑÐ»ÐºÑ Ð½Ð° ÑÑнкÑиÑ
в каÑеÑÑве знаÑениÑ.
ÐÑÑÑ Ð´Ð²Ð° ÑпоÑоба доÑÑÑпа к ÑвойÑÑвам: ÑоÑеÑÐ½Ð°Ñ Ð¸ ÑкобоÑÐ½Ð°Ñ Ð·Ð°Ð¿Ð¸Ñи.
ТоÑеÑÐ½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑРзапиÑи object.property
, property должно бÑÑÑ Ð´ÐµÐ¹ÑÑвиÑелÑнÑм иденÑиÑикаÑоÑом. (Ð ÑÑандаÑÑе ECMAScript, имена ÑвойÑÑв ÑеÑ
ниÑеÑки назÑваÑÑÑÑ "IdentifierNames", а не "Identifiers", поÑÑÐ¾Ð¼Ñ Ð·Ð°ÑезеÑвиÑованнÑе Ñлова могÑÑ Ð±ÑÑÑ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ñ Ð² иÑ
каÑеÑÑве, но ÑÑо не ÑекомендÑеÑÑÑ). ÐапÑимеÑ, object.$1
ÑвлÑеÑÑÑ Ð²ÐµÑной запиÑÑÑ, а object.1
- неÑ.
const variable = object.property_name;
object.property_name = value;
const object = {};
object.$1 = 'foo';
console.log(object.$1); // 'foo'
object.1 = 'bar'; // SyntaxError
console.log(object.1); // SyntaxError
ÐдеÑÑ Ð¼ÐµÑод Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ createElement
ÑÑиÑÑваеÑÑÑ Ñ Ð¾Ð±ÑекÑа document
и вÑзÑваеÑÑÑ.
document.createElement("pre");
ÐÑли Ð²Ñ Ñ Ð¾ÑиÑе вÑзваÑÑ Ð¼ÐµÑод на ÑиÑленном лиÑеÑале, не имеÑÑий ÑаÑÑи Ñ ÑкÑпоненÑой или ÑоÑки, оÑделÑÑÑей дÑобнÑÑ ÑаÑÑÑ, нÑжно ÑÑавиÑÑ Ð¿Ñобел пеÑед ÑоÑкой, ÑвлÑÑÑейÑÑ ÑаÑÑÑÑ Ð¾Ð±ÑаÑÐµÐ½Ð¸Ñ Ðº ÑÑÐ¾Ð¼Ñ Ð¼ÐµÑодÑ, ÑÑÐ¾Ð±Ñ Ð¸Ð½ÑеÑпÑеÑаÑÐ¾Ñ Ð½Ðµ поÑÑиÑал, ÑÑо ÑÑо ÑоÑка оÑделÑÐµÑ Ð´ÑобнÑÑ ÑаÑÑÑ ÑиÑла (или иÑполÑзоваÑÑ Ð´ÑÑгие ÑпоÑÐ¾Ð±Ñ ÑÑого избежаÑÑ).
// SyntaxError, здеÑÑ ÑÑиÑаеÑÑÑ, ÑÑо 77. ÑÑо ÑиÑло,
// поÑÑÐ¾Ð¼Ñ ÑÐ°ÐºÐ°Ñ Ð·Ð°Ð¿Ð¸ÑÑ ÑквиваленÑна (77.)toExponentional()
// ÑÑо ÑвлÑеÑÑÑ Ð¾Ñибкой
77.toExponentional()
// РабоÑие ваÑианÑÑ:
77.toExponential()
77
.toExponential()
;(77).toExponential()
// ÐдеÑÑ Ð¿ÐµÑÐ²Ð°Ñ ÑоÑка оÑноÑиÑÑÑ Ðº ÑиÑлÑ, вÑоÑÐ°Ñ Ð²ÑзÑÐ²Ð°ÐµÑ Ð¼ÐµÑод
// Ñо еÑÑÑ ÑÑа запиÑÑ ÑавноÑилÑна (77.).toExponential()
77..toExponential()
// ÐквиваленÑно (77.0).toExponential()
77.0.toExponential()
СкобоÑÐ½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑ
РзапиÑи object[property_name]
, property_name
- ÑÑо вÑÑажение, вÑÑиÑлÑÑÑееÑÑ Ð² ÑÑÑÐ¾ÐºÑ Ð¸Ð»Ð¸ Ñимвол. ÐÑо Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð»ÑÐ±Ð°Ñ ÑÑÑока, не обÑзаÑелÑно дейÑÑвиÑелÑнÑй иденÑиÑикаÑоÑ, напÑÐ¸Ð¼ÐµÑ '1foo'
, '!bar!'
или даже ' '
(пÑобел).
const variable = object[property_name];
object[property_name] = value;
ÐÑимеÑ, аналогиÑнÑй пÑимеÑÑ Ð² пÑедÑдÑÑем пÑнкÑе:
document["createElement"]("pre");
ÐÑобел пеÑед Ñкобкой допÑÑкаеÑÑÑ:
document["createElement"]("pre");
Ðмена ÑвойÑÑв
Ðмена ÑвойÑÑв могÑÑ Ð±ÑÑÑ ÑÑÑоками или Ñимволами. ÐÑбое дÑÑгое знаÑение пÑиводиÑÑÑ Ðº ÑÑÑоке. СледÑÑÑий код вÑÐ²Ð¾Ð´Ð¸Ñ 'value'
, поÑколÑÐºÑ ÑиÑло 1
пÑиводиÑÑÑ Ðº ÑÑÑоке '1'
.
const object = {};
object["1"] = "value";
console.log(object[1]);
ÐÑÐ¾Ñ Ð¿ÑÐ¸Ð¼ÐµÑ Ñакже вÑÐ²Ð¾Ð´Ð¸Ñ 'value',
Ñак как и foo
, и bar пÑиводÑÑÑÑ Ðº одной и Ñой же ÑÑÑоке.
const foo = { unique_prop: 1 };
const bar = { unique_prop: 2 };
const object = {};
object[foo] = "value";
console.log(object[bar]);
Рдвижке SpiderMonkey JavaScript ÑÑо ÑÑÑока '[object Object]'
.
ÐеÑод не пÑивÑзан к ÑодеÑжаÑÐµÐ¼Ñ ÐµÐ³Ð¾ обÑекÑÑ. ÐÑо знаÑиÑ, ÑÑо знаÑение this
в меÑодаÑ
обÑекÑа не вÑегда ÑказÑÐ²Ð°ÐµÑ Ð½Ð° него. ÐмеÑÑо ÑÑого, this
"пеÑедаÑÑÑÑ" пÑи вÑзове меÑода. СмоÑÑиÑе подÑобнее this
.
eval
ÐовиÑки JavaScript ÑаÑÑо делаÑÑ Ð¾ÑибкÑ, иÑполÑзÑÑ eval Ñам, где можно пÑоÑÑо иÑполÑзоваÑÑ ÑкобоÑнÑÑ Ð·Ð°Ð¿Ð¸ÑÑ.
ÐапÑимеÑ, ÑледÑÑÑий ÑинÑакÑÐ¸Ñ Ð¼Ð¾Ð¶Ð½Ð¾ ÑаÑÑо ÑвидеÑÑ Ð² ÑкÑипÑÐ°Ñ .
x = eval("document.forms.form_name.elements." + strFormControl + ".value");
ФÑнкÑÐ¸Ñ eval()
оÑÐµÐ½Ñ Ð¼ÐµÐ´Ð»ÐµÐ½Ð½Ð°Ñ Ð¸ ÐµÑ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ ÑледÑÐµÑ Ð¸Ð·Ð±ÐµÐ³Ð°ÑÑ, когда ÑÑо возможно. ÐÑоме Ñого, ÑÑÑока strFormControl
пÑи Ñаком иÑполÑзовании обÑÐ·Ð°Ð½Ñ ÑодеÑжаÑÑ Ð´ÐµÐ¹ÑÑвиÑелÑнÑй иденÑиÑикаÑоÑ, ÑÑо не ÑвлÑеÑÑÑ Ð¾Ð±ÑзаÑелÑнÑм Ð´Ð»Ñ id
полей ÑоÑмÑ, Ñо еÑÑÑ, напÑимеÑ, поле Ñ id 1 не полÑÑиÑÑÑ Ð¿Ð¾Ð»ÑÑиÑÑ Ñакой запиÑÑÑ. ÐÑÑÑе вмеÑÑо ÑÑого иÑполÑзоваÑÑ ÑкобоÑнÑÑ Ð·Ð°Ð¿Ð¸ÑÑ:
x = document.forms["form_name"].elements[strFormControl].value;
СпеÑиÑикаÑии СовмеÑÑимоÑÑÑ Ñ Ð±ÑаÑзеÑами СмоÑÑиÑе Ñакже
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4