| [ Web Proxy ] |
| Viewing: https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Functions/set | [Back] [Original] |
Get to know MDN better
Esta pgina foi traduzida do ingls pela comunidade. Saiba mais e junte-se comunidade MDN Web Docs.
This feature is well established and works across many devices and browser versions. Its been available across browsers since julho de 2015.
A sintaxe set liga a propriedade da funo para ser chamada quando existe uma tentativa de definir valor para essa propriedade.
{set prop(val) { . . . }}
{set [expression](val) { . . . }}
propNome da propriedade ligada a funo.
valUm apelido para varivel que ser atribuidada a prop.
Iniciando com ECMAScript 6, voc pode usar tambm expresses para computar o nome da propriedade a ser definida na funo.
Em JavaScript, um setter pode ser usado para executar uma funo sempre que se tenta mudar uma propriedade especfica. Setters so geralmente usados em conjunto com getters, para criar um tipo de pseudo-propriedade. No entanto impossvel ter-se um setter para uma propriedade que contenha um valor real.
Observe os seguintes itens ao trabalhar com a sintaxe set:
{ set x(v) { }, set x(v) { } } e { x: ..., set x(v) { } } proibido.)Um setter pode ser deletado usando o operator delete.
Vai definir um pseudo-property current para este objeto, quando atribuido um valor, vai mudar log com o valor passado:
var o = {
set current(str) {
this.log[this.log.length] = str;
},
log: [],
};
Observe que current no est definido e qualquer tentativa de acesso ir resultar em undefined.
deleteSe voc deseja remover o setter, poder usar somente o delete:
delete o.current;
definePropertyPara adicionar um setter para um Object existentem mais tarde, use Object.defineProperty().
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
console.log(o.a); // 5
Nota: Ateno: Propriedades computadas so uma tecnologia experimental, parte da proposta ECMAScript 6, e no amplamente suportada por todos os browsers ainda. Ele vai retornar um syntax error en ambientes que no tem suporte.
var expr = "foo";
var obj = {
baz: "bar",
set [expr](v) {
this.baz = v;
},
};
console.log(obj.baz); // "bar"
obj.foo = "baz"; // run the setter
console.log(obj.baz); // "baz"
| Specification |
|---|
| ECMAScript 2027 LanguageSpecification # sec-method-definitions |
SyntaxError as per the ES6 specification.deleteObject.defineProperty()Object.prototype.__defineGetter__()Object.prototype.__defineSetter__()This page was last modified on 12 de out. de 2025 by MDN contributors.
Your blueprint for a better internet.
Portions of this content are 19982026 by individual mozilla.org contributors. Content available under a Creative Commons license.
| Web Proxy Viewer | New URL | Original Page |