在JavaScript中,我想创建一个对象实例(通过new运算符),但是将任意数量的参数传递给构造函数.这可能吗?
我想做的是这样的事情(但下面的代码不起作用):
function Something(){
// init stuff
}
function createSomething(){
return new Something.apply(null, arguments);
}
var s = createSomething(a,b,c); // 's' is an instance of Something
Run Code Online (Sandbox Code Playgroud)
答案
从这里的回复中可以清楚地看出,没有内置的方式.apply()与new运营商通话.然而,人们提出了一些非常有趣的解决方案.
我首选的解决方案是Matthew Crumley的这个解决方案(我已将其修改为通过该arguments属性):
var createSomething = (function() {
function F(args) {
return Something.apply(this, args);
}
F.prototype = Something.prototype;
return function() {
return new F(arguments);
}
})();
Run Code Online (Sandbox Code Playgroud) 我不是一个程序员,PHP是我很舒服的地方.有时我发现我需要做一些事情,例如在我的计算机上大规模安排文件或重命名文件.我想我可以用PHP做到这一点,但我当然不能.
所以我很好奇,有没有办法将PHP文件作为exe文件运行.
编辑:相当重要的一点,使用Windows.
我想编写一个函数(除其他外)接受可变数量的参数,然后将它们传递给sprintf().
例如:
<?php
function some_func($var) {
// ...
$s = sprintf($var, ...arguments that were passed...);
// ...
}
some_func("blah %d blah", $number);
?>
Run Code Online (Sandbox Code Playgroud)
我如何在PHP中执行此操作?
我在PL/SQL包中声明了以下类型:
TYPE t_simple_object IS RECORD (
wert NUMBER,
gs NUMBER,
vl NUMBER);
TYPE t_obj_table IS TABLE OF t_simple_object
INDEX BY BINARY_INTEGER;
Run Code Online (Sandbox Code Playgroud)
然后我声明一个变量:
obj t_obj_table;
Run Code Online (Sandbox Code Playgroud)
但是,当我想使用变量时,我无法初始化或扩展它:
obj := t_obj_table ();
Run Code Online (Sandbox Code Playgroud)
给出以下错误:
PLS-00222: no function with name 'T_OBJ_TABLE' exists in this scope
Run Code Online (Sandbox Code Playgroud)
如果我没有初始化它,我不能扩展它来添加一些日期
obj.EXTEND();
Run Code Online (Sandbox Code Playgroud)
给出另一个错误:
PLS-00306: wrong number or types of arguments in call to 'EXTEND'
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
我们有8位,16位,32位和64位硬件架构和操作系统.但不是说42位或69位.
为什么?它是否能使2 ^ n位成为更好的选择,或仅仅是与现有系统的兼容性?(64位寄存器可以容纳两个32位指针,或者一个32位数据单元可以容纳4个字节,这显然很方便.)
我有一个Access 2003表,有大约4000条记录,由17个不同的表组成.这些记录中大约有一半是重复的.没有唯一的标识列(id,name等).有一个id列在表结合时自动填充,意味着重复项不完全相同(尽管如果它使事情变得容易,可以删除此列).
我使用了Access Find Duplicates查询向导,该向导为我提供了重复记录的列表,但不允许我删除它们(如果我不能删除它们,请认真使用此查询?).我已经尝试将生成的查询转换为删除查询,但这会更改它找到的行数.我会手动更改sql,但它有点超出我并且长7行.
有谁知道摆脱重复的好方法?
我在其中一个页面上传了文件功能.我使用JavaScript检查文件的扩展名.现在我想限制用户上传大于1 MB的文件.有什么办法可以使用JavaScript检查文件上传大小.
我的代码目前看起来像这样:
<script language="JavaScript">
function validate() {
var filename = document.getElementById("txtChooseFile").value;
var ext = getExt(filename);
if(ext == "txt" || ext == "csv")
return true;
alert("Please upload Text files only.");
return false;
}
function getExt(filename) {
var dot_pos = filename.lastIndexOf(".");
if(dot_pos == -1)
return "";
return filename.substr(dot_pos+1).toLowerCase();
}
</script>
Run Code Online (Sandbox Code Playgroud) 我有一个静态方法,它创建一个类的实例并将其放在静态变量中.我想知道在这种情况下,内存管理的正确方法是什么.
你不能把它放在dealloc方法中,因为虽然它可以访问静态变量,但任何创建的实例方法都会释放getInstance.
我想可能有一个创建静态破坏方法的选项,它将手动释放内存,并且可以由appWillTerminate用户调用,但这看起来有点奇怪.
那么,问题是: 释放静态变量的正确方法是什么?
// MyClass.m
#import "MyClass.h"
static MyClass *myClass; // How to properly do memory management
@implementation MyClass
+ (MyClass *)sharedMyClass {
if (myClass == nil) myClass = [[MyClass alloc] init];
return myClass;
}
@end
Run Code Online (Sandbox Code Playgroud) 我有一个如下表格设置:
<table>
<tr>
<td class="url">
<a href="http://www.domainname.com/page1.html" />
</td>
</tr>
<tr>
<td class="url">
<a href="http://www.domainname.com/page2.html" />
</td>
</tr>
<tr>
<td class="url">
<a href="http://www.domainname.com/page3.html" />
</td>
</tr>
</table>
Run Code Online (Sandbox Code Playgroud)
我基本上希望锚点在链接点击时更改为包含href的文本框,下面是示例结果:
<table>
<tr>
<td class="url">
<input type="text" value="http://www.domainname.com/page1.html" />
</td>
</tr>
<tr>
<td class="url">
<a href="http://www.domainname.com/page2.html" />
</td>
</tr>
<tr>
<td class="url">
<a href="http://www.domainname.com/page3.html" />
</td>
</tr>
</table>
Run Code Online (Sandbox Code Playgroud)
当单击另一个锚标记或文本框未聚焦时,任何文本框将返回为锚点,单击的文本框将更改为文本框.
javascript ×2
php ×2
.net ×1
architecture ×1
arguments ×1
assemblies ×1
bit ×1
c# ×1
class ×1
constructor ×1
desktop ×1
duplicates ×1
gac ×1
hardware ×1
inheritance ×1
input ×1
iphone ×1
jquery ×1
ms-access ×1
objective-c ×1
oop ×1
oracle ×1
parameters ×1
plsql ×1
printf ×1
static ×1
text ×1
theory ×1
upload ×1
variables ×1