Baseline Widely available
ÐпеÑаÑÐ¾Ñ set
ÑвÑзÑÐ²Ð°ÐµÑ ÑвойÑÑво обÑекÑа Ñ ÑÑнкÑией, коÑоÑÐ°Ñ Ð±ÑÐ´ÐµÑ Ð²Ñзвана пÑи попÑÑке ÑÑÑановиÑÑ ÑÑо ÑвойÑÑво.
{set prop(val) { . . . }} {set [expression](val) { . . . }}ÐаÑамеÑÑÑ
prop
ÐÐ¼Ñ ÑвойÑÑва Ð´Ð»Ñ Ð¿ÑивÑзки к заданной ÑÑнкÑии.
val
ÐÑевдоним пеÑеменной, коÑоÑÐ°Ñ Ñ
ÑÐ°Ð½Ð¸Ñ Ð·Ð½Ð°Ñение, неÑдавÑегоÑÑ Ð¾Ð¿ÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ prop.
ÐаÑÐ¸Ð½Ð°Ñ Ñ ECMAScript 6, Ð²Ñ Ñакже можеÑе иÑполÑзоваÑÑ Ð²ÑÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð´Ð»Ñ Ð²ÑÑиÑлÑемого Ð¸Ð¼Ñ ÑвойÑÑва Ð´Ð»Ñ Ð¿ÑивÑзки к данной ÑÑнкÑии.
Ð JavaScript, ÑеÑÑÐµÑ Ð¼Ð¾Ð¶Ð½Ð¾ иÑполÑзоваÑÑ Ð´Ð»Ñ Ð²ÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ÑÑнкÑии, когда бÑÐ´ÐµÑ Ð¿Ð¾Ð¿ÑÑка Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ñказанного ÑвойÑÑва. СеÑÑеÑÑ Ð¸ÑполÑзÑÑÑÑÑ ÑаÑе вÑего в ÑоÑеÑании Ñ Ð³ÐµÑÑеÑами Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð¾Ð´Ð½Ð¾Ð³Ð¾ из видов пÑевдо-ÑвойÑÑва. Ðевозможно одновÑеменно имеÑÑ ÑеÑÑÐµÑ Ð´Ð»Ñ ÑвойÑÑва, коÑоÑое ÑодеÑÐ¶Ð¸Ñ ÑакÑиÑеÑкое знаÑение.
ÐбÑаÑиÑе внимание на ÑледÑÑÑие моменÑÑ Ð¿Ñи ÑабоÑе Ñ ÑинÑакÑиÑом set
:
{ set x(v) { }, set x(v) { } }
и { x: ..., set x(v) { } }
запÑеÑенÑ)СеÑÑÐµÑ Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ ÑдалÑн опеÑаÑоÑом delete
.
ÐÑо Ð¿Ð¾Ð·Ð²Ð¾Ð»Ð¸Ñ Ð¾Ð¿ÑеделиÑÑ Ð¿Ñевдо-паÑамеÑÑ current
обÑекÑа o
, коÑоÑÑй задаÑÑ Ð·Ð½Ð°Ñение, обновлÑÑÑее знаÑение log
:
var o = {
set current(str) {
this.log[this.log.length] = str;
},
log: [],
};
обÑаÑиÑе внимание, ÑÑо current
не опÑеделÑн и лÑбÑе попÑÑки доÑÑÑпа к Ð½ÐµÐ¼Ñ Ð²ÐµÑнÑÑ undefined
.
delete
ÐÑли Ð²Ñ Ñ
оÑиÑе ÑдалиÑÑ ÑеÑÑеÑ, Ð²Ñ Ð¼Ð¾Ð¶ÐµÑе пÑоÑÑо его ÑдалиÑÑ
:
defineProperty
ЧÑÐ¾Ð±Ñ Ð´Ð¾Ð±Ð°Ð²Ð¸ÑÑ ÑеÑÑÐµÑ Ð½Ð° ÑÑÑеÑÑвÑÑÑий обÑÐµÐºÑ Ð² лÑбое вÑемÑ, иÑполÑзÑйÑе Object.defineProperty()
.
var o = { a: 0 };
Object.defineProperty(o, "b", {
set: function (x) {
this.a = x / 2;
},
});
o.b = 10; // ÐапÑÑÐºÐ°ÐµÑ ÑеÑÑеÑ, коÑоÑÑй пÑиÑÐ²Ð°Ð¸Ð²Ð°ÐµÑ 10 / 2 (5) ÑвойÑÑÐ²Ñ 'a'
console.log(o.a); // 5
ÐÑполÑзование вÑÑиÑлÑемого имени ÑвойÑÑва
var expr = "foo";
var obj = {
baz: "bar",
set [expr](v) {
this.baz = v;
},
};
console.log(obj.baz); // "bar"
obj.foo = "baz"; // запÑÑÐºÐ°ÐµÑ ÑеÑÑеÑ
console.log(obj.baz); // "baz"
СпеÑиÑикаÑии СовмеÑÑимоÑÑÑ Ñ Ð±ÑаÑзеÑами СмоÑÑиÑе Ñакже
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