我是个菜鸟,这几天,一直在搞JS接口的使用,自己创建了父对象和子对象,并在页面上对其传参数(参数包括数值、对象),然后在所定义对象的方法中获取值,测试成功。感受颇深,自己专门写了一个创建对象文档,现将内容共享出来,互相学习。
创建一级对象:
**枚举所创对象的属性和方法,
enum{
//.......
};
*创建对象实体:
typedef struct tagClassInstanceCtx{
//.......
} EisClassInstanceCtx;
**构造函数初始化
void *JSClassObject_fConstruct(JSVirtualMachine *vm, int argc, JSNode *argv)
{
EisClassInstanceCtx *ictx;
int isize=0;
ictx=(EisClassInstanceCtx*)js_vm_calloc(vm,1,sizeof(*ictx));
return ictx;
}
static
void JSClassObject_fConstruct3(JSVirtualMachine *vm, int argc, JSNode *argv, void **inst, JSBuiltinInfo *parentInfo, JSNode *parentNode)
{
EisClassInstanceCtx *ictx;
ictx=(EisClassInstanceCtx*)js_vm_calloc0(vm,1,sizeof(*ictx));
*inst = ictx;
js_vm_make_builtin_node3(vm, parentInfo, argc,argv, parentNode);
}
**指针保护
不能能在Mark函数外部使用js_mark_ptr函数
static
void JSClassObject_fMark(JSVirtualMachine *vm, void *instance)
{
if (instance!=NULL) {
EisClassInstanceCtx *ictx;
ictx = (EisClassInstanceCtx *) instance;
if (js_vm_mark_ptr(vm, ictx)!=1) return;