oop - javascript object literal instantiation -
i new js oop , dont understand how can this.
i have
var cadastro = object.create(qform); var options = { myinstancename: "cadastro", dependentlistsmode: "one", defaultbuttons: ['enter-query', 'new'] } cadastro.initform(options);
then have qform.js
var qform; qform = { initform: function (parms) { $.extend(this, parms); var frmobj = $(this.formid); this.userrestrictions(parms); $(this.currentform).find("a[data-form-action]").hide(); this.clearform(); this.disablefields(); },
the problem if have e object in same page , this.currentform have value of latest intantiated object .
qform.js extense file lot of methods. how can manage this. thanks
in general code works, uses object.create
create new instances based on qform
prototype , new instances not share properties, here short working example:
var qform; qform = { initform: function (parms) { $.extend(this, parms); this.frmobj = $(this.formid); } }; var cadastro = object.create(qform); var options = { myinstancename: "cadastro", formid: "cadastroform", dependentlistsmode: "one", defaultbuttons: ['enter-query', 'new'] } cadastro.initform(options); var formtwo = object.create(qform); var options = { myinstancename: "formtwo", formid: "test", dependentlistsmode: "one", defaultbuttons: ['enter-query', 'new'] } formtwo.initform(options); alert(cadastro.formid); alert(formtwo.formid);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
if run it, see cadastroform
, test
, 2 instances created based on qform have different formid
properties.
Comments
Post a Comment