小编Gra*_*hao的帖子

如何在Vim的每一行末尾添加文本?

在Vim中,我有以下文字.

key => value1
key => value2
key => value1111
key => value12
key => value1122222
Run Code Online (Sandbox Code Playgroud)

我想在每一行的末尾添加",".以前的文本将成为以下内容:

key => value1,
key => value2,
key => value1111,
key => value12,
key => value1122222,
Run Code Online (Sandbox Code Playgroud)

有谁知道如何做到这一点?是否可以使用visual block来实现这一目标?

vim

98
推荐指数
6
解决办法
8万
查看次数

CoffeeScript中的函数声明

我注意到在CoffeeScript中,如果我使用以下方法定义函数:

a = (c) -> c=1
Run Code Online (Sandbox Code Playgroud)

我只能得到函数表达式:

var a;
a = function(c) {
    return c = 1;
};
Run Code Online (Sandbox Code Playgroud)

但是,我个人经常使用函数声明,例如:

function a(c) {
    return c = 1;
}
Run Code Online (Sandbox Code Playgroud)

我确实使用了第一种形式,但我想知道CoffeeScript中是否有一种生成函数声明的方法.如果没有这种方式,我想知道为什么CoffeeScript会避免这样做.我不认为JSLint会声明声明的错误,只要函数声明在作用域的顶部.

javascript jslint function-declaration coffeescript

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

如何在Express.js或Connect.js中配置多个子域

我习惯于使用httpd(Apache),它提供了一种配置映射到目录的子域的方法.我如何在Connect.js/Express.js中做同样的事情?我看到我唯一拥有的是路由,我不知道如何使用它来配置子域.我有像m.mysite.com,sync.mysite.com这样的子域名

有人可以帮忙吗?

subdomain node.js express connect.js

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

JavaScript继承:当构造函数有参数时

使用纯JavaScript进行继承,这是我通常做的事情:

function A() {}
A.prototype.run = function () {};

function B() {}
B.prototype = new A;
B.prototype.constructor = B;
Run Code Online (Sandbox Code Playgroud)

由于没有参数传递给构造函数,新的A没有什么可抱怨的.现在,如果构造函数有要传递的参数,我还没有想出一个很好的继承方法.例如,

function A(x, y) {}
A.prototype.run = function () {};

function B(x, y) {}
B.prototype = new A;
B.prototype.constructor = B;
Run Code Online (Sandbox Code Playgroud)

我可以传递一些任意值,如:

B.prototype = new A(null, null);
Run Code Online (Sandbox Code Playgroud)

在某些情况下,我可能需要在A的构造函数中验证x和y.在某些极端情况下,我在检查x或y时需要抛出错误.然后,B无法使用新的A从A继承.

有什么建议?

谢谢!

javascript inheritance prototype-programming

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

在app.configure中Node.js,表达和使用开发与生产

让表达知道我所处的环境最简单的方法是什么?例如,我想做以下操作,根据我所使用的环境建立与redis的连接.可以通过命令行完成吗?

app.configure('development', function(){
  app.use(express.errorHandler({ dumpExceptions: true, showStack: true }));
  var r = require("redis").createClient(6379,'127.0.0.1');
});
app.configure('production', function(){
  app.use(express.errorHandler());
  r = redis.createClient(6379,'46.137.195.230', { detect_buffers: true });
});
Run Code Online (Sandbox Code Playgroud)

development-environment production-environment node.js express

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

更好的检查JavaScript命名空间的方法

现在我有一个遵循长链名称空间的模块,例如:

TOP.middle.realModuleName = function () { /*...*/ }
Run Code Online (Sandbox Code Playgroud)

我需要在页面上使用此模块,我不确定此页面是否包含名称空间Top.middle.所以我必须做以下事情:

if (typeof TOP !== 'undefined' && TOP.middle && TOP.middle.realdModuleName) {
    new TOP.middle.realModuleName();
}
Run Code Online (Sandbox Code Playgroud)

我认为这个if陈述看起来很长很冗长.任何人都有关于如何为这种情况编写更好的参数检查模式的建议?

javascript namespaces

13
推荐指数
2
解决办法
8027
查看次数

变量抛出'undefined'错误,无法弄清楚

我正在使用Raphael.js.每次我加载页面时都会收到一条错误,内容如下:

con is undefined
x = con.x
Run Code Online (Sandbox Code Playgroud)

我抬头看了con拉斐尔的文档,这就是我发现的:

var con = R._getContainer.apply(0, arguments),
    container = con && con.container,
    x = con.x,
    y = con.y,
    width = con.width,
    height = con.height;
    //...
Run Code Online (Sandbox Code Playgroud)

con在这里明确定义.这是我要加载的代码:

var paper = new Raphael(ele('canvas_container'), 500, 500);

window.onload = function() {
            var circle = paper.circle(100,100,100);
            for (i = 0; i < 5; i++) {
                var multiplier = i * 5;
                paper.circle(250 + (2 * multiplier), 100 + multiplier, 50 - multiplier);
            }
    }
Run Code Online (Sandbox Code Playgroud)

有没有其他人得到这个错误?这是拉斐尔版本中的一个错误吗?我还是有其他问题吗?

javascript raphael

10
推荐指数
1
解决办法
4224
查看次数

在构造函数中定义原型方法

今天,我看到了我一生中从未见过的JavaScript模式.我无法说出使用这种模式的目的.这对我来说似乎不对,但我想保守一点.这可能是我以前从未见过的一些很棒的模式.

function Dog() {
    Dog.prototype.bark = function () {
        alert('woof!');
    }

    this.bark = function () {
        Dog.prototype.bark();
    }

    this.bark();
}
Run Code Online (Sandbox Code Playgroud)

首先,我不是没有理由在构造函数中创建方法(作为特权成员)的粉丝.每次创建实例时都会导致创建函数.其次,在这段代码片段中,它还调用原型名称"Dog",而不是"this".这让我非常困惑.

谁知道它有什么好处?

谢谢!恩典

javascript prototype-programming

9
推荐指数
1
解决办法
4605
查看次数

Vim中退格的奇怪行为(从Mac到Linux的SSH)

我没有改变我的Vim的任何设置,但今天Backspace获得了一些疯狂的行为.每当我点击它时,它不会删除一个字符,而是打印^?.谁知道发生了什么事?

vim backspace

9
推荐指数
2
解决办法
6879
查看次数

如何退出CoffeeScript REPL?

我试图在令人敬畏的脚本 - CoffeeScript的REPL模式下玩,但我发现很难退出它.我试过"退出","q","退出",ctrl + c,但仍然失败了.

我在Windows XP中使用cygwin.

谁知道如何退出呢?谢谢!

恩典

exit coffeescript

8
推荐指数
1
解决办法
3458
查看次数