解new操作符後大家應該已經知道,必須有乙個構造器才能執行new操作。所以比單例項要多了乙個過程,就是要建立構造器,下面我把步驟給貼出來。
以multiobject為例。
1.新增multiobject.h檔案
[cpp]view plain
copy
print?
#ifndef multiobject_h
#define multiobject_h
#include
#include
#include
namespace webcore
~multiobject();
void disconnectframe();
frame* frame() const
string description() const;
private:
multiobject(frame*);
frame* m_frame;
};
}
#endif
2.新增multiobject.cpp檔案
[cpp]view plain
copy
print?
#include "multiobject.h"
#include "platformstring.h"
#include "frame.h"
#include "page.h"
#include "rangeriframewidget.h"
#include "config.h"
namespace webcore
multiobject::~multiobject()
void multiobject::disconnectframe()
string multiobject::description() const
//物件的屬性
}
3.新增multiobject.idl檔案
[cpp]view plain
copy
print?
module window ;
}
4.修改domwindow.idl檔案
新增宣告如下:
[cpp]view plain
copy
print?
attribute [jsccustomgetter] multiobjectconstructor multiobject;
webcore/bindings/js
5.新增jsmultiobjectconstructor.h
[cpp]view plain
copy
print?
#ifndef __jsmultiobjectconstructor_h__
#define __jsmultiobjectconstructor_h__
#include "jsdombinding.h"
namespace webcore
};
} // namespace webcore
#endif//__jsmultiobjectconstructor_h__
6.新增 jsmultiobjectconstructor.cpp
[cpp]view plain
copy
print?
#include "config.h"
#include "jsmultiobjectconstructor.h"
#include "jsmultiobject.h"
#include "scriptexecutioncontext.h"
#include "multiobject.h"
#include
#include "jsdomwindowbase.h"
using
namespace jsc;
namespace webcore ;
jsmultiobjectconstructor::jsmultiobjectconstructor(execstate* exec, jsdomglobalobject* globalobject)
: domconstructorobject(jsmultiobjectconstructor::createstructure(globalobject->objectprototype()), globalobject)
static jsobject* constructmultiobject(execstate* exec, jsobject* constructor, const arglist&)
constructtype jsmultiobjectconstructor::getconstructdata(constructdata& constructdata)
} // namespace webcore
7.修改jsdomwindowcustom.cpp
[cpp]view plain
copy
print?
#include "jsmultiobjectconstructor.h"
jsvalue jsdomwindow::multiobject(execstate* exec) const
擴充套件js的String物件
有些時候我們需要對字串做一些原生js不支援的複雜操作,可以考慮擴充套件string物件 string.prototype.delhtmltag function var str likai console.log str.delhtmltag 我們知道在使用js開發的時候,遇到很多的程式 都要自己寫...
JS中物件的擴充套件
物件擴充套件函式 1 方法一 2function extend target,source 1011 return target 12 1 方法二 深度擴充套件23 function mix target,source 8 i 0 9 1011 while source args i 16 17 1...
給JS物件新增擴充套件方法
如何在js中像c 語法一樣,呼叫str.trim 呢?在js中string物件自己也有trim方法,可通過str.trim 實現 在jquery中jquery物件也封裝了trim方法,可通過 trim str 實現 可是對於trimstart,trimend的方法,js的string物件並沒有對應方...