// Первый вариант встречается, но редко:
JSObject* obj = nativeWrapperCache->GetWrapper();
// Второй встречается существенно чаще
const nsIID *iid = nsnull;
JSContext *cx = nsnull;
nsGlobalWindow *win = nsGlobalWindow::FromWrapper(wrapper);
// Функция:
NS_IMETHODIMP nsWindowSH::GetProperty(nsIXPConnectWrappedNative *wrapper, JSContext *cx, JSObject *obj, jsid id, jsval *vp, PRBool *_retval){}
Type a, b,c;
Type* pA, pB, pC;
Type a, b,c;
Type *pA, pB, *pC;
Лучше всего, на самом деле, выучить все четыре этих языка (Python, C/C++, Perl, и LISP). Помимо того, что это самые важные хакерские языки, они демонстрируют очень разные подходы к программированию и каждый из них научит вас ценным вещам.