Javascript的新手,阅读Crockford的Javascript:The Good Parts(以及其他内容)
在关于函数的第4章中,Crockford正在展示如何在外部函数中保留它以用于内部函数,我理解.
我的问题是,在他的示例代码和更类似的代码中,为什么要使用这个辅助函数:
myObject.double = function() {
var that = this;
var helper = function () {
that.value = add(that.value, that.value);
}
helper();
};
Run Code Online (Sandbox Code Playgroud)
是因为add()是在全局范围内,而值是在myObject中,所以我需要复制这个(myObject)然后转移到全局,我可以抓住add()?
否则我不确定为什么我需要辅助功能?
我正在重构一个大项目,需要将一些组件移动到新的模块和表单.是否有一种明智的方法来确保依赖组件的属性更新?
也许grep项目的dfms?
示例:将TDataSource从巨大的DataModule移动到较小的DataModule.在某些情况下,来源可能是40-50个表格的参考.我需要确保引用数据源的所有控件都得到更新.
来自DailyJS "让我们构建一个JavaScript框架"我对以下代码不太确定,显然是用作全局减排技术.
到目前为止,我的理解是在(function(){}).我理解设置turing var up,将global.turing设置为turing,然后返回窗口或者这个(如果不是在浏览器中),但是(function(global){})(this或window)让我感到困惑......我见过像这样的东西
var mything = {} 并在我的东西下设置你的所有代码,但这个成语让我有点困惑.
我真的很想理解这里的推理并记住它"有效"
(function(global) {
var turing = {
VERSION: '0.0.1',
lesson: 'Part 1: Library Architecture'
};
if (global.turing) {
throw new Error('turing has already been defined');
} else {
global.turing = turing;
}
})(typeof window === 'undefined' ? this : window);
Run Code Online (Sandbox Code Playgroud) 你以前都听说过经典的Delphi应用程序.
对于第三方库,我们有150万行代码,可能是我们自己的200,000行(Dev Express,NexusDB等)
一个巨大的数据模块,我已经慢慢分成5(可能需要更多).将一些业务逻辑缓慢地移动到这些数据模块,但肯定是作为模块的方法.
一切都在"按钮下"编码,没有我们自己的类.一些表单有20k行代码.
我需要一个合理的计划才能让它变得更好.现在你无法真正测试它的任何一个,微小的变化可能会引入大量的bug等.
我想,首先,为每个主要表单获取一个单元,并将表单中的业务逻辑提取到此类/单元.像TMyForm这样的东西有一个TMyFormClass.pas,所以TmyForm最终只有UI.继续模块化数据模块,尽快编写测试.只有我们正在努力的重构.
声音健全,另外建议,有人请发给我liqour ....
XE2出局了,我注意到FMX似乎没有任何报告选项?
VCL有快速报告,我认为仍然是Rave 10 - 但FMX没什么?
我是EDI的新手,必须在遗留系统中实现它.
我想确保我有更高级别的概述正确:
1)从我的系统为给定的贸易伙伴生成EDI文件2)可能将它FTP给他们3)响应是ftp给我,我把它刮回到我的系统
我有关于这个概念吗?
我理解大多数贸易伙伴都在调整标准,所以那里有很多工作要做?
我正在寻找一些起点,将Win32 Delphi应用程序的数据与Web应用程序的远程数据库集成在一起.
该项目打算解决的问题:
1)桌面在vpns上表现不佳.远程办公室的用户可以使用Web应用程序.
2)一些公司更喜欢网络应用程序到桌面应用程序
3)移动设备可以将Web应用程序作为前端.
我发现的问题:
Web应用程序将在基于Unix的系统上运行,可能是Linux,而桌面应用程序使用NexusDB,而Web应用程序可能是Postgres.不同的平台和数据库.
使用Delphi,似乎Microsoft Sync Framework不适用于此项目.
我的第一个想法是为Web应用程序提供标准REST API,让桌面应用程序点击API,就像它是一个客户端,每隔n分钟从本地数据库服务器.我已经看到了很多问题!
我是Delphi,Ruby和Javascript程序员,最终学习C - 从K&R开始.我正在尽力不要跳过并使用尚未介绍的库和概念.由于这是第一章教程,我只坚持一些语言功能,并希望保持这种方式.
1-22对于陌生人:
在第n列输入之前出现的最后一个非空白字符之后,编写一个程序将"长"输入行"折叠"成两条或更多条较短的行.
确保您的程序在非常长的行中执行智能操作,并且如果指定列之前没有空格或制表符.
在没有寻求外界帮助的情况下,我已经达到了1-22,但我一直在与1-22的"大多数"工作版本进行斗争.我认为我的算法......经常发臭.
到目前为止,我已经决定将输入折叠为40个字符.使用整数除法(/和模数%)我弄清楚我需要折叠每一行的次数,跳转到该列并向后计数直到我击中一个空格.空格被'\n'取代.重复+40个字符.
如果没有遇到空格,我们将在每个列停靠处进行硬折叠.
我得到一些偷偷摸摸的线路通过我的边界,并想知道我是否应该将输入读入char行[],然后一次复制到缓冲区40个字符,折叠缓冲区,并将缓冲区复制回行[] ..但这似乎特别没有工作 string.h
代码在下面,我正在寻找正确方向和解决方案的提示,因为我认为我几乎就在那里.
#include <stdio.h>
#define MAXBUF 1000
#define WRAP 20
int getline(char s[],int lim);
int main(void)
{
int len; /* length of each input */
int folds; /* how many folds we've performed */
int lines; /* lines the input breaks down to given len */
int index; /* index of fold */
int didfold; /* true (1) if we were able to fold on a ' ' */ …Run Code Online (Sandbox Code Playgroud) 数百个Windows 8客户端中大约有2-3个在2-3周前开始收到此消息.
每个Wireshark在连接关闭之前的最后一次传输是
'2.0.0准备启动TLS'
代码段:
Smtp := TIdSMTP.Create(nil);
try
IdSSLIOHandlerSocketOpenSSL1 := TIdSSLIOHandlerSocketOpenSSL.Create(smtp);
try
Smtp.OnStatus := IdSMTP1Status;
Smtp.OnWorkBegin := IdSMTP1WorkBegin;
Smtp.OnWorkEnd := IdSMTP1WorkEnd;
Smtp.OnWork := IdSMTPWork;
Smtp.Host := 'smtp.gmail.com'
Smtp.Port := 487, 565 both tried here;
Smtp.Username := 'the email@gmail.com'
Smtp.Password := 'The password'
// TLS for Gmail, etc
if UseSSL then // true
begin
Smtp.IOHandler := IdSSLIOHandlerSocketOpenSSL1;
if Smtp.Port = 465 then
Smtp.UseTLS := utUseImplicitTLS
else
if Smtp.Port = 587 then
Smtp.UseTLS := utUseExplicitTLS
else
Smtp.UseTLS := utUseExplicitTLS;
IdSSLIOHandlerSocketOpenSSL1.Host := …Run Code Online (Sandbox Code Playgroud) 鉴于这种混乱(多年前设计将一些数据写入csv"field1","field2"),输出文件已开始停止大约55个字符.在showmessage()调用或放置在本地String变量中也是如此.转换为TStringList以清除代码甚至以相同的方式失败.在代码停止时在IDE中将此检查为本地字符串变量将按计划显示整个构建的字符串.ShowMessage()甚至将尾随省略号放在最后.
我最终以"LD","BC63781S","JACKSON","MS","DENVER","CO","1186","0"......在showmessage和"LD","BC63781S","磁盘文件中的JACKSON","MS","DENVER","CO","1186","0".
更好的可读性 https://gist.github.com/788839
Writeln(F,
'"'+ ACtion
+ '","' + Ini.ReadString('IP_ITS','BAccount','TEST')
+ '","' + FieldByName('PICKCITY').AsString
+ '","' + FieldByName('PICKST').AsString
+ '","' + FieldByName('DROPCITY').AsString
+ '","' + FieldByName('DROPST').AsString
+ '","' + FieldByName('TOT_MILES').AsString
+ '","' + FloatToStr(AWeight)
+ '","' + FieldByName('LENGTH').AsString
+ '","' + FloatToStr(AStops)
+ '","' + ''{grosspay}
+ '","' + FieldByName('PICK_DATE').AsString
+ '","' + FieldByName('PICK_TIME').AsString
+ '","' + FieldByName('DROP_DATE').AsString
+ '","' + FieldByName('DROP_TIME').AsString
+ '","' + AEquip
+ '","","' + ALTL
+ '"' + ',"","' + '","1","'
+ Ini.ReadString('IP_ITS','BComp','BAccount')
+ …Run Code Online (Sandbox Code Playgroud) delphi ×6
javascript ×2
arrays ×1
c ×1
delphi-2010 ×1
delphi-xe ×1
delphi-xe2 ×1
edi ×1
firemonkey ×1
globals ×1
gmail ×1
indy ×1
oop ×1
refactoring ×1
x12 ×1