在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来实现这一目标?
我注意到在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会声明声明的错误,只要函数声明在作用域的顶部.
我习惯于使用httpd(Apache),它提供了一种配置映射到目录的子域的方法.我如何在Connect.js/Express.js中做同样的事情?我看到我唯一拥有的是路由,我不知道如何使用它来配置子域.我有像m.mysite.com,sync.mysite.com这样的子域名
有人可以帮忙吗?
使用纯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继承.
有什么建议?
谢谢!
让表达知道我所处的环境最简单的方法是什么?例如,我想做以下操作,根据我所使用的环境建立与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
现在我有一个遵循长链名称空间的模块,例如:
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陈述看起来很长很冗长.任何人都有关于如何为这种情况编写更好的参数检查模式的建议?
我正在使用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模式.我无法说出使用这种模式的目的.这对我来说似乎不对,但我想保守一点.这可能是我以前从未见过的一些很棒的模式.
function Dog() {
Dog.prototype.bark = function () {
alert('woof!');
}
this.bark = function () {
Dog.prototype.bark();
}
this.bark();
}
Run Code Online (Sandbox Code Playgroud)
首先,我不是没有理由在构造函数中创建方法(作为特权成员)的粉丝.每次创建实例时都会导致创建函数.其次,在这段代码片段中,它还调用原型名称"Dog",而不是"this".这让我非常困惑.
谁知道它有什么好处?
谢谢!恩典
我没有改变我的Vim的任何设置,但今天Backspace获得了一些疯狂的行为.每当我点击它时,它不会删除一个字符,而是打印^?.谁知道发生了什么事?
我试图在令人敬畏的脚本 - CoffeeScript的REPL模式下玩,但我发现很难退出它.我试过"退出","q","退出",ctrl + c,但仍然失败了.
我在Windows XP中使用cygwin.
谁知道如何退出呢?谢谢!
恩典
javascript ×5
coffeescript ×2
express ×2
node.js ×2
vim ×2
backspace ×1
connect.js ×1
exit ×1
inheritance ×1
jslint ×1
namespaces ×1
raphael ×1
subdomain ×1