我希望能够将我的JavaScript代码打包到"命名空间"中,以防止与其他库发生名称冲突.由于命名空间的声明应该是一段简单的代码,我不希望依赖任何外部库来为我提供此功能.我已经找到了关于如何简单地执行此操作的各种建议,但在通过JSLint运行时(使用"好的部件"选项)似乎没有任何错误.
作为一个例子,我尝试使用高级JavaScript(没有YUI的命名空间部分):
"use strict";
if (typeof(MyNamespace) === 'undefined') {
MyNamespace = {};
}
Run Code Online (Sandbox Code Playgroud)
Problem at line 2 character 12: 'MyNamespace' is not defined.
Problem at line 3 character 5: 'MyNamespace' is not defined.
Implied global: MyNamespace 2,3
Run Code Online (Sandbox Code Playgroud)
可以通过明确声明来修复"隐含的全局"错误MyNamespace...
"use strict";
if (typeof(MyNamespace) === 'undefined') {
var MyNamespace = {};
}
Run Code Online (Sandbox Code Playgroud)
...并且可以通过在if块之外声明变量来修复其他两个错误.
"use strict";
var MyNamespace;
if (typeof(MyNamespace) === 'undefined') {
MyNamespace = {};
}
Run Code Online (Sandbox Code Playgroud)
这样可行,但在我看来(因为MyNamespace在检查时它总是未定义?)它相当于更简单:
"use strict"; …Run Code Online (Sandbox Code Playgroud) 我有一个项目,我必须从SVN中提取数据或代码,并根据从SVN检索的代码/数据创建序列/类/ UML图.
我的问题是:
任何指针都将非常感激.
我有一个使用一些javascript函数的应用程序,
由于所有javascripts都包含在Masterpage中,因此大多数带有pagepage的页面都不是必需的,其中一些是重复的(因为在一些不同的JS文件中使用).
所以我想检查是否有办法确定重复的功能并删除它们?
因此,我们都努力减少重复(DRY)和其他气味,并尽可能保持我们的代码良好和干净.对于Ruby代码,有很多仪器可以检测气味,例如相当不错的Calibre服务.
但是,似乎我对代码重复的定义与工具不同.我认为这可能与Ruby的做事方式有关,你几乎从不直接访问变量,而是通过方法调用.考虑一下Rails控制器的这个片段:
def update_site_settings
SiteSettings.site_name = params[:site_name]
SiteSettings.site_theme = params[:site_theme]
expire_fragment('layout_header')
flash[:notice] = t(:Site_settings_updated)
redirect_to :controller => 'application', :action => 'edit_site_settings'
end
Run Code Online (Sandbox Code Playgroud)
由于对"params"方法的两次调用,因此标记了代码重复警告.所以我的问题是,分配params到局部变量真的会有所改进吗?我认为编写它的方式是最清晰简洁的方法,事实上,params方法而不是变量是Ruby中"做生意的成本".
我看错了吗?
编辑:在这种情况下,更漂亮的方式可能是进行SiteSettings.update_attributes(params)样式更新.如果您愿意,请考虑另一个代码段中的相同问题:
def update
@mailing_list = MailingList.find(params[:id])
if @mailing_list.update_attributes(params[:mailing_list])
flash[:notice] = t:Mailing_list_updated
redirect_to(mailing_lists_path)
...
Run Code Online (Sandbox Code Playgroud) 可能重复:
有人可以解释这个Javascript方法吗?
(x = [].reverse)() === window // true
Run Code Online (Sandbox Code Playgroud)
知道为什么吗?
我有两个Enum如下:
enum Connector {
AND, OR, XOR;
}
enum Component {
ACTIVITY
}
Run Code Online (Sandbox Code Playgroud)
现在,我有一个follower在类中命名的变量Event.这个变量(follower)可以具有(并且应该具有)上述两个中Enum的任何一个的值.
那么,我应该给follower变量什么数据类型?
可能重复:
如何在C中查找可执行文件的位置
嗨,
我正在寻找一种可移植的方法来查找程序的根目录(在C++中).例如,在Linux下,用户可以将代码复制到/ opt,将其添加到PATH,然后执行它:
cp -r my_special_code /opt/
export PATH=${PATH}:/opt/my_special_code/
cd /home/tony/
execution_of_my_special_code
Run Code Online (Sandbox Code Playgroud)
(其中"execute_my_special_code"是/ opt/my_special_code中的程序).
现在,作为"execution_of_my_special_code"的开发人员,是否有一种可移植的编程方法可以发现可执行文件位于/ opt/my_special_code中?
第二个例子是在MS Windows上:如果我当前的工作目录在一个硬盘驱动器上(例如"C:\")而可执行文件放在另一个硬盘驱动器上(例如"D:\")怎么办?
最终,目标是读取与程序代码一起打包的一些预定义配置文件,而不强制用户进入安装目录.
非常感谢提前!
是否有一个模块包含一个在python中计算因子分析(而不是PCA)的函数?
我正在为Outlook 2007创建一个插件,在收到邮件时读取它,然后重写它.插件工作得很好,并为没有将其移动到另一个文件夹的Outlook规则的项重写邮件.如果有规则,大约50%的时间仍然可以.另外50%的时间,规则会在我的插件完成之前移动邮件项目.我收到以下错误:
"由于对象已被删除,因此无法执行操作."
我正在使用NewMailEx事件来调用我的重写函数:
private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
this.Application.NewMailEx += new Outlook.ApplicationEvents_11_NewMailExEventHandler(olApp_NewMail);
}
Run Code Online (Sandbox Code Playgroud)
在Outlook 2007中,NewMailEx为邮件提供了entryID.此entryID最初用于确定要使用的邮件对象:
Outlook.NameSpace outlookNS = this.Application.GetNamespace("MAPI");
Outlook.MAPIFolder mFolder = this.Application.Session.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox);
Outlook.MailItem mail;
try
{
mail = (Outlook.MailItem)outlookNS.GetItemFromID(entryIDCollection, Type.Missing);
}
catch (Exception e) { Debug.WriteLine("exception with non-mail item " + entryIDCollection + ": " + e.ToString()); return; }
Run Code Online (Sandbox Code Playgroud)
我认为我可以使用这个entryID(上面的代码可以工作),并遍历我的所有文件夹(在交换机上和我的计算机上),寻找相同的邮件ID.当我最终迭代到邮件所在的位置时,移动邮件的EntryID与entryIDCollection非常不同.
也许我会以错误的方式解决这个问题.有谁知道如何阻止事件传播直到我完成,或者如何追踪移动的电子邮件?
这是我的代码遍历文件夹,万一有人好奇:
try
{
mail.Subject = new_subj;
mail.Body = "";
mail.HTMLBody = text;
mail.ClearConversationIndex();
mail.Save();
}
catch (Exception ex)
{
//It wasn't caught in time, so …Run Code Online (Sandbox Code Playgroud) 我想制作一个可增长的字节数组.即列表.在c#中,通常会使用以下语法
List<byte> mylist = new List<byte>();
Run Code Online (Sandbox Code Playgroud)
在java中,这种语法不起作用,我已经google了一下,找到了下面的代码
List myList = new ArrayList();
Run Code Online (Sandbox Code Playgroud)
但这不是我想要的.我知道哪里出错了?
java ×3
javascript ×3
analysis ×1
asp.net ×1
c# ×1
c++ ×1
collections ×1
duplicates ×1
enums ×1
execution ×1
generics ×1
jquery ×1
jslint ×1
list ×1
master-pages ×1
namespaces ×1
outlook ×1
python ×1
ruby ×1
svn ×1
uml ×1
vsto ×1