javascript - How does code call function(s) of objects when that/those function(s) is/are undefined in the object definition? -


i have code image

var img = {     id: id++,     link: m.attr("index"),     x: m.offsetx(),     y: m.offsety(),     width: m.width(),     height: m.height() }; 

now call function img.setcordinates(x,y) , img.setdimention(w,h), dont want add them img object have many img object , saved , loaded in file. not mater function do, i'm wondering how implemented?

i should mention this, reason need these function becouse of code example problem: (not good)

arr.getbyid(index).x = 100; arr.getbyid(index).y = 200; 

.getbyid() direct prototype of array loops true arr , id specified.

you should start new prototype chain this:

function myimage(data) {     // copy data instance     (var key in data) {         this[key] = data[key]; // assume data anonymous object     } }  myimage.prototype.setcoordinates = function(x, y) {     this.x = x;     this.y = y; }  myimage.prototype.setdimensions = function(width, height) {     this.width = width;     this.height = height; } // etc. 

then can create new image this:

var img = new myimage({     id: id++,     link: m.attr("index"),     x: m.offsetx(),     y: m.offsety(),     width: m.width(),     height: m.height() });  img.setcoordinates(0, 0); 

update

it seems if use json.stringify( arr of myimage ) not work when loaded in.

that's because json serializes data, not methods or functions. if want restore array of myimage objects, should this:

var images = json.parse(data).map(function(image) {     return new myimage(image); }); 

the anonymous function maps parsed data myimage object , applied each element of resurrected array.


Comments

Popular posts from this blog

jquery - How can I dynamically add a browser tab? -

node.js - Getting the socket id,user id pair of a logged in user(s) -

keyboard - C++ GetAsyncKeyState alternative -