Module Js.Obj

module Obj: Js_obj

val empty : unit -> < .. > Js.t
empty () returns the empty object {}
val assign : < .. > Js.t -> < .. > Js.t -> < .. > Js.t
assign target source copies properties from source to target Properties in target will be overwritten by properties in source if they have the same key. Returns target
  • See also MDN
  •  
    (* Copy an object *)
    
    let obj = [%obj { a = 1 }]
    
    let copy = Js.Obj.assign (Js.Obj.empty ()) obj
    
    (* prints "{ a: 1 }" *)
    let _ = Js.log copy
    
     
    (* Merge objects with same properties *)
    
    let target = [%obj { a = 1; b = 1; }]
    let source = [%obj { b = 2; }]
    
    let obj = Js.Obj.assign target source
    
    (* prints "{ a: 1, b: 2 }" *)
    let _ = Js.log obj
    
    (* prints "{ a: 1, b: 2 }", target is modified *)
    let _ = Js.log target
    
    val keys : 'a Js.t -> string array
    keys obj returns an array of the keys of obj's own enumerable properties
  • See also MDN