Seed Reference Manual | ||||
---|---|---|---|---|
Top | Description |
Creating JavaScript classesCreating JavaScript classes — Dealing with Seed class definitions and constructors |
Synopsis
#include <seed/seed.h> enum SeedPropertyAttributes; enum SeedClassAttributes; typedef SeedClass; #define seed_empty_class SeedClass seed_create_class (seed_class_definition *def
); SeedObject seed_make_constructor (SeedContext ctx
,SeedClass klass
,SeedObjectCallAsConstructorCallback constructor
);
Description
Defining new Seed classes allows for implementing more complex behavior than possible with the traditional JavaScript object system and default class. When writing Seed modules, it is often the best pattern to define many of your types through classes and static functions/value. Please note that inside the finalize callback of a class, it is not legal to call any method requiring a SeedContext (with the exception of protect/unprotect, though it is not guaranteed this will continue to work with future versions of JSCore).
Details
enum SeedPropertyAttributes
typedef enum { SEED_PROPERTY_ATTRIBUTE_NONE = 0, SEED_PROPERTY_ATTRIBUTE_READ_ONLY = 1 << 1, SEED_PROPERTY_ATTRIBUTE_DONT_ENUM = 1 << 2, SEED_PROPERTY_ATTRIBUTE_DONT_DELETE = 1 << 3 } SeedPropertyAttributes;
enum SeedClassAttributes
typedef enum { SEED_CLASS_ATTRIBUTE_NONE = 0, SEED_CLASS_ATTRIBUTE_NO_SHARED_PROTOTYPE = 1 << 1 } SeedClassAttributes;
seed_create_class ()
SeedClass seed_create_class (seed_class_definition *def
);
|
A JSClassDefinition. |
Returns : |
A SeedClass, described by def . |
seed_make_constructor ()
SeedObject seed_make_constructor (SeedContext ctx
,SeedClass klass
,SeedObjectCallAsConstructorCallback constructor
);
|
A SeedContext. |
|
The JSObjectCallAsConstructorCallback function to call when the constructor is invoked with 'new'. |
Returns : |
A SeedObject, which is a constructor function. |