2
是否可以設置一個備用的回調也就是當用戶想調用不存在函數調用?例如。後備回調
my_object.ThisFunctionDoesNotExists(2, 4);
現在我想調用一個函數,其中第一個參數是名稱和堆棧(或類似的東西)與參數傳遞。爲了澄清,回退回調應該是一個C++函數。
是否可以設置一個備用的回調也就是當用戶想調用不存在函數調用?例如。後備回調
my_object.ThisFunctionDoesNotExists(2, 4);
現在我想調用一個函數,其中第一個參數是名稱和堆棧(或類似的東西)與參數傳遞。爲了澄清,回退回調應該是一個C++函數。
假設你的問題是關於嵌入這是從標籤推斷V8發動機,可以用和諧代理功能:
var A = Proxy.create({
get: function (proxy, name) {
return function (param) {
console.log(name, param);
}
}
});
A.hello('world'); // hello world
使用--harmony_proxies
參數去啓用此功能。從C++代碼:
static const char v8_flags[] = "--harmony_proxies";
v8::V8::SetFlagsFromString(v8_flags, sizeof(v8_flags) - 1);
其他方式:
有一個叫SetNamedPropertyHandler
這樣你就可以攔截訪問屬性上v8::ObjectTemplate
的方法。例如:
void GetterCallback(v8::Local<v8::String> property,
const v8::PropertyCallbackInfo<v8::Value>& info)
{
// This will be called on property read
// You can return function here to call it
}
...
object_template->SetNamedPropertyHandler(GetterCallback);
謝謝,但我想要在C++中完全相同的行爲。所以「代理」功能應該調用C++後備。對不起,我的壞描述。 –
好的,更新了我的答案。沒有和諧代理就可以做到這一點。 – iefserge