Saltar para o conteúdo principal
Versão: 20 R7 BETA

New object

New object {( propriedade ; valor {; propriedade2 ; valor2 ; ... ; propriedadeN ; valorN} )} -> Resultado

ParâmetroTipoDescrição
propriedadeTextNome da propriedade a criar
valoranyValor da propriedade
ResultadoObjectNovo objeto linguagem

Descrição

O comando New object cria um novo objeto vazio ou pré-recheado e devolve sua referência.

Se não passar nenhum parâmetro, New object cria um objeto vazio e devolve sua referência. Deve atribuir esta referência a uma variável 4D declarada com C_OBJECT ou um campo objeto 4D.

Nota: C_OBJECT declara uma variável de tipo Objeto mas não cria nenhum objeto.

Opcionalmente, pode prefixar o novo objeto passando um ou vários pares propriedade/valor como parâmetros:

  • No parâmetro propriedade, passe a etiqueta da propriedad a criar. Note que o parâmetro propriedade é sensível a maiúsculas e minúsculas.
  • No parâmetro valor, passe o valor que deseja definir para a propriedade. Vários tipos de dados são suportados. :
    • Número (real, inteiro...) Valores numéricos são guardados como reais
    • texto
    • booleano
    • ponteiro
    • blog (4D.Blob)
    • data
    • hora
    • null
    • imagem
    • objeto
    • coleção.

Note que:

Se passar um ponteiro, é mantido como tal e avaliado quando usar comandos como JSON Stringify,

datas são armazenadas como "yyyy-mm-dd" ou strings com o formato "YYYY-MM-DDTHH:mm:ss.SSSZ", de acordo com as configurações de banco de dados "dates inside objects" (veja Página Compatibilidade). Quando converter datas em texto antes do armazenamento no objeto, por padrão o programa usa a hora local. Pode modificar esse comportamento usando o seletor Dates inside objects ou o comando SET DATABASE PARAMETER.

Se passar uma hora, é armazenada como o número de milissegundos (Real).

Exemplo 1

Este comando pode criar objeto vazios ou cheios:

 var $obj1 : Object
 var $obj2 : Object
 var $obj3 : Object
 $obj1:=New object
  // $obj1 = {}
 $obj2:=New object("name";"Smith")
  // $obj2 = {name:Smith}
 $obj3:=New object("name";"Smith";"age";40)
  // $obj3 = {name:Smith,age:40}

Exemplo 2

Cria um novo objeto com um objeto como valor de parâmetro:

 var $Children;$Contact : Object
 
  //Criar um array objeto
 ARRAY TEXT($arrChildren;3)
 $arrChildren{1}:="Richard"
 $arrChildren{2}:="Susan"
 $arrChildren{3}:="James"
 OB SET ARRAY($Children;"Children";$arrChildren)
 
  //Inicializar o objeto
 $Contact:=New object("FirstName";"Alan";"LastName";"Parker";"age";30;"Children";$Children)
  // $Contact = {FirstName:Alan,LastName:Parker,age:30,Children:{Children:[Richard,Susan,James]}}

Exemplo 3

Este comando é útil para passar objetos como parâmetros:

 var $measures : Object
 $measures:=Database measures(New object("path";"DB.cacheReadBytes";"withHistory";True;"historyLength";120))

Exemplo 4

Com este comando, pode fácilmente manejar objetos em loops:

 ARRAY OBJECT($refs;0)
 var vCounter : Integer
 
 For(vCounter;1;100)
    APPEND TO ARRAY($refs;New object("line";"Line number "+String(vCounter)))
 End for

Ver também

New shared object