小编Pau*_*oub的帖子

如何在Javascript中包装函数?

我正在为我的一个应用程序编写一个全局错误处理"模块".

我想要的一个功能是能够使用Try {} Catch {}块轻松包装函数,以便对该函数的所有调用将自动具有将调用我的全局日志记录方法的错误处理代码.(避免使用try/catch块在任何地方污染代码).

然而,这稍微超出了我对Javascript,.call和.apply方法以及"this"关键字的低级功能的理解.

我根据Prototype的Function.wrap方法编写了这段代码:

Object.extend(Function.prototype, {
  TryCatchWrap: function() {
    var __method = this;
    return function() {
            try { __method.apply(this, arguments) } catch(ex) { ErrorHandler.Exception(ex); }
    }
  }
});
Run Code Online (Sandbox Code Playgroud)

使用方式如下:

function DoSomething(a, b, c, d) {
    document.write(a + b + c)
    alert(1/e);
}

var fn2 = DoSomething.TryCatchWrap();
fn2(1, 2, 3, 4);
Run Code Online (Sandbox Code Playgroud)

该代码完美无缺.它打印出6,然后调用我的全局错误处理程序.

我的问题是......当我正在包装的函数在一个对象中时它是否会破坏某些东西,它会使用"this"运算符?我有点担心,因为我打电话.在那里传递一些东西,我担心这可能会破坏一些东西.

javascript function try-catch wrapper apply

29
推荐指数
2
解决办法
5万
查看次数

匹配数组中的模式

有一个包含2个元素的数组

test = ["i am a boy", "i am a girl"]
Run Code Online (Sandbox Code Playgroud)

我想测试是否在数组元素中找到了一个字符串,例如:

test.include("boy")  ==> true
test.include("frog") ==> false
Run Code Online (Sandbox Code Playgroud)

我能这样做吗?

ruby arrays

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

如何使用IntelliJ将外部库的源和javadoc添加到gradle?

我用IntelliJ和Gradle建立了一个Java项目.我的根项目中有一个build.gradle文件,我可以编译并运行我的应用程序.

但是......我正在使用一个带有源和javadoc zip文件的Java库.如果我在我的源代码中并想要从这个库中获取类或方法的声明,IntelliJ会调出.class文件而不是.javazip中提供的源文件.

如何告诉gradle使用随外部库提供的源和javadoc zip?

java javadoc intellij-idea gradle

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

从另一个包和文件golang导入struct

我尝试从另一个包和文件导入类型时遇到问题.我正在尝试导入的结构是下面的结构.

type PriorityQueue []*Item

type Item struct {
   value string
   priority int   
   index int 
}
Run Code Online (Sandbox Code Playgroud)

如果我将PriorityQueue与其所有方法放在同一个文件中,我将其声明

pq:= &PriorityQueue{}
Run Code Online (Sandbox Code Playgroud)

我一直在寻找互联网,就像一个疯子,在这个简单的问题上找到答案,但我还没有找到答案.我通常用java编程,导入类是如此基础.

struct package go

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

CSS类优先级

我今天遇到问题后,对CSS类的优先级有疑问.情况如下:

我有一个无序列表,其中有一个与之关联的类.该LI标签具有定义得太一些风格.我想LI在点击后更改s 的样式(通过添加的"selected"类),但是从不应用添加的类的样式.这是正常的行为还是这个代码应该有效?

CSS:

.dynamicList
{
    list-style: none;
}

.dynamicList li
{
    display: block;
    width: 400px;
    height: 55px;
    padding: 10px 10px 10px 10px;
    border: 1px solid #000;
    background-color: #ff0000;
}

.selectedItem
{
    background-color: #0000ff;
}
Run Code Online (Sandbox Code Playgroud)

HTML:

<ul class="dynamicList">
  <li>First Item</li>
  <li class="selectedItem">Second (Selected) Item</li>
</ul>
Run Code Online (Sandbox Code Playgroud)

"selected"列表项的背景颜色不会更改.如果我不将样式应用于LI元素,但是创建另一个类并将其应用于所有列表项以使其读取,则也是如此.

<li class="listitem selectedItem">xxxx</li>
Run Code Online (Sandbox Code Playgroud)

css class list css-specificity

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

如何使用版本控制中的第三方组件管理Delphi项目?

如果您有大型组件,安装第三方组件总是需要很长时间,但如果您在多台计算机中设置环境,则需要更长时间.

而且我正在考虑将它们添加到版本控制(Subversion)中,因此使用所有必需的组件检查项目总是很容易的.

那么你如何管理它,以及在VCS中管理它们的最佳实践是什么?

还要考虑其中一些第三方没有来源但是作为Delphi库.(BPL).

delphi version-control project-structure

24
推荐指数
2
解决办法
2787
查看次数

传递比函数声明更多的参数是不是很糟糕?

我有一个功能

function callback(obj){...}
Run Code Online (Sandbox Code Playgroud)

是否可以传入比函数签名中声明的更多的对象?例如这样称呼它:

callback(theObject, extraParam);
Run Code Online (Sandbox Code Playgroud)

我在Firefox上尝试过它并没有出现问题,但是这样做不好吗?

javascript

23
推荐指数
1
解决办法
8879
查看次数

从RGB获得Hue的最快公式

如果给出的红色,绿色和蓝色值范围为0-255,那么获得色调值的最快计算是什么?该公式将以30fps(每秒920万次)用于640x480图像的每个像素,因此每一点速度优化都有帮助.

我见过其他公式,但我不满意他们涉及多少步骤.我正在寻找一个实际的公式,而不是内置的库函数.

rgb colors

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

SLOC(源代码行)作为度量标准有多糟糕?

我们正在记录我们的软件开发过程.对于技术人员来说,这非常简单:每四周内部里程碑进行迭代开发,每3个月外部一次.

但是,本练习的目的是以他们能够理解的方式为我们的项目管理公开事物.具体而言,这些非技术管理人员需要他们能够理解的指标.

我很了解我们的指标选择,并提出了一整套(满足要求,实际成本与预算成本是我最喜欢的两个).但是,我们确实有一些老手涉及,他们倾向于挂在像SLOC这样的指标上.

我理解SLOC的诱惑:非软件人员似乎很容易理解,这似乎是物理事物中最接近的类比(就像过去计算打孔卡片一样!).

所以这就是问题:如何向非技术人员解释SLOC的危险性?

这里有一些具体的动机:我们致力于一个相当成熟的部署系统,该系统背后有多年的历史.随着我们添加功能,SLOC趋于保持大致水平甚至降低(重构删除旧/死代码,新功能实际上只是对现有功能进行调整等).对于非程序员经理来说,开发项目中不增加的SLOC充其量只是令人困惑....

澄清以下最近的答案:记住,我认为SLOC对于衡量项目进展的目的而言是一个糟糕的指标.我并不是说这是一个不值得收集的数字.它需要广泛的上下文来做任何有用的事情,大多数程序经理都没有这种上下文.

code-metrics

21
推荐指数
7
解决办法
1万
查看次数

不鼓励在分离的视图控制器上呈现视图控制器

我正在使用带有故事板的xcode 5.1.1.我在主菜单上有一个按钮,它会使用此代码弹出到另一个视图控制器

VC *secondVC = [[VC alloc] init];
[self presentViewController:secondVC animated:YES completion: nil];
Run Code Online (Sandbox Code Playgroud)

我有这个代码的后退按钮

[self dismissViewControllerAnimated:YES completion: nil];
Run Code Online (Sandbox Code Playgroud)

当我弹出secondVC xcode给我的错误:

不鼓励在分离的视图控制器上呈现视图控制器<UINavigationController: 0x8c94510>.

我也有旋转问题,它无法正常工作.

xcode ios amslidemenu

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