问题列表 - 第15260页

将.apply()与'new'运算符一起使用.这可能吗?

在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)

javascript oop inheritance constructor class

451
推荐指数
11
解决办法
7万
查看次数

PHP作为桌面编程语言

我不是一个程序员,PHP是我很舒服的地方.有时我发现我需要做一些事情,例如在我的计算机上大规模安排文件或重命名文件.我想我可以用PHP做到这一点,但我当然不能.

所以我很好奇,有没有办法将PHP文件作为exe文件运行.

编辑:相当重要的一点,使用Windows.

php desktop

18
推荐指数
3
解决办法
2453
查看次数

将变量参数列表传递给sprintf()

我想编写一个函数(除其他外)接受可变数量的参数,然后将它们传递给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中执行此操作?

php parameters printf arguments

13
推荐指数
1
解决办法
5296
查看次数

在PL/SQL中使用记录表

我在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)

我怎样才能做到这一点?

oracle plsql

12
推荐指数
3
解决办法
5万
查看次数

为什么位数总是(?)是2的幂?

我们有8位,16位,32位和64位硬件架构和操作系统.但不是说42位或69位.

为什么?它是否能使2 ^ n位成为更好的选择,或仅仅是与现有系统的兼容性?(64位寄存器可以容纳两个32位指针,或者一个32位数据单元可以容纳4个字节,这显然很方便.)

architecture theory hardware bit

51
推荐指数
6
解决办法
5608
查看次数

在Access 2003中删除重复项

我有一个Access 2003表,有大约4000条记录,由17个不同的表组成.这些记录中大约有一半是重复的.没有唯一的标识列(id,name等).有一个id列在表结合时自动填充,意味着重复项不完全相同(尽管如果它使事情变得容易,可以删除此列).

我使用了Access Find Duplicates查询向导,该向导为我提供了重复记录的列表,但不允许我删除它们(如果我不能删除它们,请认真使用此查询?).我已经尝试将生成的查询转换为删除查询,但这会更改它找到的行数.我会手动更改sql,但它有点超出我并且长7行.

有谁知道摆脱重复的好方法?

ms-access duplicates

6
推荐指数
1
解决办法
6274
查看次数

如何使用简单的Javascript获取文件的上传大小?

我在其中一个页面上传了文件功能.我使用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)

javascript upload

11
推荐指数
3
解决办法
4万
查看次数

Objective-C/iPhone内存管理静态变量

我有一个静态方法,它创建一个类的实例并将其放在静态变量中.我想知道在这种情况下,内存管理的正确方法是什么.

你不能把它放在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)

iphone variables static memory-management objective-c

12
推荐指数
2
解决办法
8544
查看次数

如何防止.NET应用程序从GAC加载/引用程序集?

我是否可以以某种方式配置.NET应用程序(Visual Studio中的设置),它引用"本地"程序集(而不是GAC)而不是GAC中的程序集,尽管两个程序集具有相同的名称和相同的版本?

.net c# assemblies gac

35
推荐指数
1
解决办法
3万
查看次数

JQuery更改文本以输入

我有一个如下表格设置:

<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)

当单击另一个锚标记或文本框未聚焦时,任何文本框将返回为锚点,单击的文本框将更改为文本框.

jquery text input

3
推荐指数
1
解决办法
2万
查看次数