js多物件擴充套件

2021-06-03 16:48:43 字數 2839 閱讀 5353

解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物件並沒有對應方...