The following code is for a brief example of a simple reusable object design. This is a very simple object at the level of one level, put as many details and methods as you want, and just assign them.
function someDesiredReusableType(optionally, pass, ctor, pars, here) { //core obj to return var DesiredTypeCrtor = { propSkiingLocation: "canada", OrderTickets: function(optionally){ var tryRoomWView = optionaly; print( "Dear " + ctor +", your request for " + propSkiingLocation + " is now being processed: an " + tryRoomWView + " request was notified, we understand you have " + pars + " for cross country transportation, confirmation email will be sent " + here + " as soon as we process your order. } } }; return DesiredTypeCrtor }
Here is an example of this use:
var DesrVacSkC = someDesiredReusableType("could really help!",null, "mr. Bean", "my mini", " Fun@bbc.co.uk ")
Like this figurative object, itβs actually not as simple as I used in my code, it works the way it is (I have not tried this actual one, as this is just an example.)
But this next setting, which similarly uses the same approach, is somewhat buggy.
This is an example for an object that I have successfully and in the blink of an eye implemented as a nested object, using the same approach as the buggy object, which I donβt understand why they applied the wrong approach to the browser.
//this is an important one, a smart property / value holder I came up with and does work perfectly, as a nested member. function Rprp(parVal) { var cretdprp = { propVal: parVal, propValAsint: parseInt(parVal) }; return cretdprp; }
But the following, below, is missing because it lacks the right approach to initialize ownedFefCollCore
Uncaught TypeError: Cannot read property "HElmTColl" undefined
// It is important that it was launched as very good, adding it to the object below until I add the member ownedFefCollCore
.
function CreateFileEditForm_Manager() { //as i do usually base/inner/creator and a return obj var Repo = { CsDataLocals: { GetCurLastfileId:Rprp($("#HLocModelData_LastFileId").val()) }, FormFldNames: { JRdrData_FileName: "JRdrData_FileName" }, //this is my bugg ! with and without new keyword & as function or Object!! ownedFefCollCore: new FefCollCore(), //and this is the line that chrome get is anger on --> all day long FeFDivWFldsColl: this.ownedFefCollCore.HElmTColl, FeFDivWFlds_IdColl: this.ownedFefCollCore.HElmT_IdColl, FeFDivWFldsCollAdd: function (parId, parFefDivWrpDivflds) { this.ownedFefCollCore.CollAdd(parId, parFefDivWrpDivflds); }, / ........ //some more code was removed trying to keep it as short as possible } //fefa stands for fileRecord Edit Form , core just says nothing, is there to imply the 'thing' is to be shared between variation of instances from the base object
In my research, I found the following approach for less constructive constructions with errors, but even this does not fix the error. And it was found among some others, such as Object.create()
var FefCore = JClassProto({ initialize: function () { this.HElmTColl = new Array();//was originally [] ... //i changed because i wanted to eliminate any doubt that it one of the reasons my code is ... Somewhere undefined , now i know (pretty sure they might be little different but both are ok.) it not it. this.HElmT_IdColl = new Array(); this.CollAdd = function (parId, parHElmT) { this.HElmTColl.push(parHElmT); this.HElmT_IdColl.push(parId); } this.Coll_Remove = function (parHElmT) { this.HElmTColl.pop(parHElmT); } // this is the first move, if a new object(which is an element in the array) about to be created, // call this to make sure not exist for i create do this.ElmObjCanCreate = function (parId) { return this.getIndexOfValuInDivWFldsColl(parId) < 0; } this.HElmTColl_FindById = function (parId) { var collindexofCurFileReadyDivWrpFlds = this.getIndexOfValuInDivWFldsColl(parId); return this.HElmTColl[collindexofCurFileReadyDivWrpFlds]; } this.getIndexOfValuInHElmTColl = function (parId) { return $.inArray(parId, this.HElmT_IdColl); } } });
And last but not least, my source code (right after trying to create it as a base / shared object).
function FefCollCore() { this.Cr = { HElmTColl: new Array(), HElmT_IdColl: new Array(), CollAdd: function (parId, parHElmT) { this.HElmTColl.push(parHElmT); this.HElmT_IdColl.push(parId); }, Coll_Remove: function (parHElmT) { this.HElmTColl.pop(parHElmT); }, CollNeedCreate: function (parId) { return this.getIndexOfValuInDivWFldsColl(parId) < 0; }, HElmTColl_FindById: function (parId) { var collindexofCurFileReadyDivWrpFlds = this.getIndexOfValuInDivWFldsColl(parId); return this.HElmTColl[collindexofCurFileReadyDivWrpFlds]; }, getIndexOfValuInHElmTColl: function (parId) { return $.inArray(parId, this.HElmT_IdColl); } }; return this.Cr; }