4. Joose is not
a browser/DOM/Ajax/Widget library
like jQuery, Prototype, YUI,
Mootools or Dojo
5. Joose is not
a browser/DOM/Ajax/Widget library
like jQuery, Prototype, YUI,
Mootools or Dojo
se when
very much need the
You will still
e Browser
you use Joose in th
32. JSON Integration
var p = new Geometry.Point({x: 10, y: 20})
var jsonSring = JSON.stringify(p);
var p2 = JSON.parse(jsonString);
alert(p2.getX())
33. JSON Integration
var p = new Geometry.Point({x: 10, y: 20})
var jsonSring = JSON.stringify(p);
var p2 = JSON.parse(jsonString);
alert(p2.getX())
N and turn
se Objects into JSO
Turn Joo jects
JSON into Joose ob
34. JSON Integration
var p = new Geometry.Point({x: 10, y: 20})
var jsonSring = JSON.stringify(p);
var p2 = JSON.parse(jsonString);
alert(p2.getX())
egration
t
Backend In
N and turn
se Objects into JSO
Turn Joo jects
JSON into Joose ob
36. Classes and Namespaces in native JS
if(Test == null) {
Test = {};
}
Test.StandardPoint = function (x, y) {
this.x = x || 0
this.y = y || 0
}
Test.StandardPoint.prototype = {
getX: function () {
return this.x
},
setX: function (x) {
this.x = x
},
getY: function () {
ion
return this.y
zat
ati
},
m
Dra
setY: function (y) {
this.y = y;
37. if(Test == null) {
Test = {};
Classes and Namespaces in native JS
}
Test.StandardPoint = function (x, y) {
this.x = x || 0
this.y = y || 0
}
Test.StandardPoint.prototype = {
getX: function () {
return this.x
},
setX: function (x) {
this.x = x
},
getY: function () {
return this.y
},
setY: function (y) {
this.y = y;
},
clear: function () {
this.setX(0)
ion
zat
this.setY(0)
ati
}
m
Dra
}
38. Using Joose
Module(quot;Testquot;, function (m) {
Class(quot;Pointquot;, {
has: {
x: {
is: quot;rwquot;,
init: 0
},
y: {
is: quot;rwquot;,
init: 0
}
},
methods: {
clear: function () {
this.setX(0);
this.setY(0);
}
}
})
})
39. Using Joose
Module(quot;Testquot;, function (m) {
Class(quot;Pointquot;, {
has: {
x: {
is: quot;rwquot;,
init: 0
},
y: {
is: quot;rwquot;,
init: 0
}
},
methods: {
clear: function () {
this.setX(0);
this.setY(0);
olling
}
eed for scr
No n
}
})
})
40. Class inheritance and method
wrappers in native JS
// We need a utility function to do the inheritance
function inherit(superClass, subClass) {
for(var i in superClass.prototype) {
subClass.prototype[i] = superClass.prototype[i]
}
}
Test.StandardPoint3D = function (x, y, z) {
this.x = x || 0
this.y = y || 0
this.z = z || 0
}
// Make Test.Standard the super class of Test.StandardPoint3D
inherit(Test.StandardPoint, Test.StandardPoint3D)
// we cant assign a new prototype because we already have the one from the
super
ion
zat
Test.StandardPoint3D.prototype.getZ = function () {
ti
ma
return this.z
Dra
}
41. }
Test.StandardPoint3D = function (x, y, z) {
this.x = x || 0
Class inheritance and method
this.y = y || 0
this.z = z || 0
wrappers in native JS
}
// Make Test.Standard the super class of Test.StandardPoint3D
inherit(Test.StandardPoint, Test.StandardPoint3D)
// we cant assign a new prototype because we already have the one from the
super
Test.StandardPoint3D.prototype.getZ = function () {
return this.z
}
Test.StandardPoint3D.prototype.setZ = function (z) {
this.z = z;
}
var superMethod = Test.StandardPoint3D.prototype.clear;
Test.StandardPoint3D.prototype.clear = function () {
superMethod.apply(this);
this.z = 0;
}
ion
zat
ati
m
Dra
42. Using Joose
Module(quot;Testquot;, function (m) {
Class(quot;Point3Dquot;, {
isa: m.Point,
has: {
z: {
is: quot;rwquot;,
init: 0
}
},
after: {
clear: function () {
this.setZ(0)
}
}
})
})
47. Speed
Should be fine if you're not building a
canvas based ray tracer for real time
animations.
Profiling shows that Joose's overhead
is negligible in most real world
applications.
48. Speed
Should be fine if you're not building a
canvas based ray tracer for real time
animations. if you do, though
Tell me
Profiling shows that Joose's overhead
is negligible in most real world
applications.
50. Joose does not
_ extend any default object prototypes.
Object.prototype.boom = function () {
alert(„Dont try this at home“)
}
51. Joose runs
_ in all common browsers
_ Rhino
_ Demandware :)
_ JScript.NET
_ Flash comming soon
_ Ensured by an extensive automated test suite.
52. Joose runs
_ in all common browsers
_ Rhino
_ Demandware :)
_ JScript.NET
_ Flash comming soon
_ Ensured by an extensive automated test suite.
ired
requ
ting in IE6
extra tes
No