如何通过抛出变量名来实例化一个类?在类中考虑这个方法:
animate: function(el, build) {
console.log(build.effect);
var animationClass = new build.effect(el,build);
},
Run Code Online (Sandbox Code Playgroud)
构建是一个包含大量内容的对象,但最重要的是"效果".此效果是独立动画类的名称 - 一个名为"MarioKartMenu".
console.log(build.effect)打印出"MarioKartMenu".但当然我得到:TypeError:表达式'build.effect'的结果[MarioKartMenu]不是构造函数.
如果我摒弃了动力,只需要制作代码:
animate: function(el, build) {
var animationClass = new MarioKartMenu(el,build);
},
Run Code Online (Sandbox Code Playgroud)
它工作得很好.是否有可能让它像我试图做的那样充满活力?
我正在开发一个基于Web的应用程序,它使用基于HTTP的JSON API在服务器和客户端之间进行通信.目标是使用相同的在线数据通过此Web服务共享,可以使用不同的目标(在线Web客户端,脱机桌面客户端或第三方创建)开发多个客户端.
现在,客户端和服务器之间的通信仅通过一个运行良好的系统通过POST发送.我阅读了很多关于REST的信息,并使用PUT,GET,POST和DELETE对HTTP进行RESTful.我可以将我的API分成这些不同的类别,但这意味着更多的代码和API的一些更改.
我的问题是:基于HTTP的API对RESTful有多重要?这是推荐,选择还是近乎必要的?
提前致谢.
当使用LDAP存储实现RBAC模型时(我使用Apache Directory 1.0.2作为测试平台),一些actor显然可以映射到特定的objectClasses:
在过去,我见过模型,其中资源未以任何方式在目录中处理,并且权限和角色被映射到Active Directory组.
有没有更好的方式来代表这些演员?如何讨论模式的良好映射和意图的文档?
我有一个将使用ClickOnce的WinForms应用程序.但事实证明ClickOnce不适用于我的应用程序,所以我想删除它.只有...似乎没有明显的方法来做到这一点.没有"Un-ClickOnce"按钮.有没有人知道我需要采取哪些步骤让我的应用程序像ClickOnce集成之前一样?
(我知道我可以创建一个新项目并将内容导入其中,但是这样做似乎很愚蠢,所以我希望还有另一种方法.)
据我所知,泛型是Java的编译时功能,编译后的字节代码中不存在参数化类型信息.我现在发现了Field#getGenericType和Method#getGenericReturnType方法,从而打破了我的世界观.请帮我把它拼凑起来.
我正在编写一个数据库视图来总结一堆记录,其中日期列中的值在过去7天内.它看起来像这样:
CREATE VIEW RecentRecordSum AS
SELECT t.ID,
SUM(t.SomeValue) AS ValueSum
FROM SomeTable t
WHERE t.RecordDate >= DATEADD(d,-7,GETDATE())
GROUP BY t.ID
Run Code Online (Sandbox Code Playgroud)
有没有办法在没有直接在where子句中使用GETDATE()的情况下执行此操作?
我正在使用SQL Server 2000和2005.
查看查询计划显示getdate()调用的成本仅为整个查询的0.03%(这比上面的查询要复杂得多),因此性能不是问题,但我喜欢我的查询是确定性的.
理想情况下,我还希望将-7参数公开为列,以便可以在查询视图的where子句中使用它.目前我正在考虑7,14,28天窗口的少量观看.
我正在编写一个win32包装类,主要是为了更多地了解win32编程.为了解决c样式回调的问题,下面的方法使用SetWindowLong/GetWindowLong存储/检索指针并将其传递给实际的winproc.
LRESULT CALLBACK WinClass::WindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
// On window creation, WindowProc receives lParam as a LPCREATESTRUCT
// Store *this* pointer as long in GWL_USERDATA
if (msg == WM_NCCREATE)
::SetWindowLong(hwnd, GWL_USERDATA, reinterpret_cast<long>(reinterpret_cast<LPCREATESTRUCT>(lParam)->lpCreateParams));
// Retrieve the pointer
WinClass *wnd = reinterpret_cast<WinClass*>(::GetWindowLongPtr(hwnd, GWL_USERDATA));
// Call the actual winproc function
if (wnd)
return wnd->WndProc(hwnd, msg, wParam, lParam);
// Default to DefWindowProc message handler function
return ::DefWindowProc(hwnd, msg, wParam, lParam);
}
Run Code Online (Sandbox Code Playgroud)
Winclass是包装CreateWindowEx创建的主窗口的类.相同的WindowProc函数是包装模式对话框的MDlgClass的一部分.我正在调用这样的对话框
DialogBox(GetModuleHandle(NULL), MAKEINTRESOURCE(id), hwnd, DialogProc);
Run Code Online (Sandbox Code Playgroud)
如果我将NULL作为hWndParent传递,则该对话框可以作为无模式对话框工作,但如果我将hwnd传递给主窗口的句柄作为hWndParent,则该对话框可以正常作为模态对话框.但是,当我关闭对话框时,它不会将控制权传递回主父窗口?Visual Studio中的调试显示它挂在WinMain中的消息泵中.
我想过使用一个hashmap来映射指针,但我宁愿用GetWindowLong来做它.这可能吗?我已经尝试将对话框指针存储在DWL_USER中,但它没有帮助. …
我看到一个奇怪的行为,试图在目标C中获得秒数.这:
NSString *nowTimestamp = [NSString stringWithFormat:@"%d",
[[NSDate date] timeIntervalSince1970]];
Run Code Online (Sandbox Code Playgroud)
输出15907296,当前时间戳应为1243555623(05/28/2009 @美国东部时间下午7:08).iPhone上的系统时间是正确的.我无法弄清楚我的生活中我做错了什么.有什么建议?
基本上我想将指针的地址存储在缓冲区中.不要问我为什么
char * buff = "myBuff";
char * myData = (char*)malloc(sizeof(char*));
int addressOfArgTwo = (unsigned int)buff;
memcpy(myData, &addressOfArgTwo, sizeof(char*));
cout << "Int Val: " << addressOfArgTwo << endl;
cout << "Address in buffer:" << (unsigned int)*myData << endl;
Run Code Online (Sandbox Code Playgroud)
我不明白为什么上面的代码不起作用.它输出:
Int Val: 4472832
Address in buffer:0
Run Code Online (Sandbox Code Playgroud)
当缓冲区中的Int Val和Address应该相同时.谢谢
是否有一个firefox插件,作为SVN客户端?我已经检查了官方的插件网站.我真的不想去安装独立客户端的麻烦,所以目前有一个firefox插件还是我或其他人可以制作的简单方法?这对我来说非常有用.