mirror of
https://github.com/espruino/Espruino.git
synced 2025-12-08 19:06:15 +00:00
56 lines
1.1 KiB
JavaScript
56 lines
1.1 KiB
JavaScript
// Examples from https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/set
|
|
|
|
var results = [];
|
|
|
|
var language = {
|
|
set current(name) {
|
|
this.log.push(name);
|
|
},
|
|
log: []
|
|
}
|
|
|
|
language.current = 'EN';
|
|
language.current = 'FA';
|
|
|
|
results.push(JSON.stringify(language.log));
|
|
// expected output: Array ["EN", "FA"]
|
|
|
|
var language = {
|
|
set current(name) {
|
|
this.log.push(name);
|
|
},
|
|
log: []
|
|
}
|
|
|
|
language.current = 'EN';
|
|
results.push(JSON.stringify(language.log)); // ['EN']
|
|
|
|
language.current = 'FA';
|
|
results.push(JSON.stringify(language.log)); // ['EN', 'FA']
|
|
|
|
delete language.current;
|
|
language.current = 'EN';
|
|
results.push(JSON.stringify(language.log)); // ['EN', 'FA']
|
|
|
|
var o = {a: 0};
|
|
|
|
Object.defineProperty(o, 'b', { set: function(x) { this.a = x / 2; } });
|
|
|
|
o.b = 10; // Runs the setter, which assigns 10 / 2 (5) to the 'a' property
|
|
results.push(o.a) // 5
|
|
|
|
|
|
class Example {
|
|
set hello(x) {
|
|
console.log("Setting"+x);
|
|
this.inner = x;
|
|
}
|
|
}
|
|
const obj = new Example();
|
|
trace(obj);
|
|
obj.hello = "world"
|
|
results.push(obj.inner); // "world"
|
|
|
|
print(results+"");
|
|
result = results=='["EN","FA"],["EN"],["EN","FA"],["EN","FA"],5,world';
|