UNPKG

foam-framework

Version:
32 lines (23 loc) 1.08 kB
<html> <head> <link rel="stylesheet" type="text/css" href="..//core/foam.css" /> <script language="javascript" src="../core/bootFOAM.js"></script> <title>Traits Demo</title> </head> <body><script> MODEL({name: 'PositionTrait', properties: [ 'x', 'y' ]}); MODEL({name: 'SizeTrait', properties: [ 'width', 'height' ]}); MODEL({name: 'Rect', traits: ['PositionTrait', 'SizeTrait']}); var r = Rect.create({x:10, y:20, width: 100, height: 50}); console.log(r.toJSON()); MODEL({name: 'Person', methods: { toString: function() { return "Hello"; } }}); MODEL({name: 'Dog', methods: { toString: function() { return "Woof"; } }}); MODEL({name: 'ExcitedTrait', methods: { toString: function() { return this.SUPER() + '!!!'; } }}); MODEL({name: 'ExcitedPerson', extendsModel: 'Person', traits: ['ExcitedTrait']}); MODEL({name: 'ExcitedDog', extendsModel: 'Dog', traits: ['ExcitedTrait']}); var person = ExcitedPerson.create(); var dog = ExcitedDog.create(); console.log(person.toString()); console.log(dog.toString()); </script></body> </html>