你有没有看过JQuery 1.4源代码的内幕,并注意到它是如何以下列方式封装的:
(function( window, undefined ) {
//All the JQuery code here
...
})(window);
Run Code Online (Sandbox Code Playgroud)
我读过一篇关于JavaScript Namespacing的文章和另一篇名为" 一对重要的Parens "的文章,所以我知道这里发生了什么.
但我以前从未见过这种特殊的语法.在那undefined做什么?为什么window需要通过然后再次出现?
我对如何使用感到很困惑git archive.
我有一个git存储库,顶层有文件夹 Foo,Bar和Baz.我需要以SVN方式导出文件夹Foo,以便快速进行测试部署.
我才知道,我可以用git-archive在SVN-ISH出口排序的方式.
但事情就是这样,以下工作正常:
git archive master | tar -x -C ~/destination
Run Code Online (Sandbox Code Playgroud)
它导致目标文件夹中的Foo,Bar,Baz文件夹.
然而,下面就会因错误使用fatal not a valid object name:
git archive master/foo | tar -x -C ~/destination
Run Code Online (Sandbox Code Playgroud)
作为该git archive程序的概要,我看到它可以<tree-ish> [path]作为一个参数(概要总结为相关部分):
git archive <tree-ish> [path...]
Run Code Online (Sandbox Code Playgroud)
如果 master/foo 不是 tree-ish,那么是什么?
我想知道是否有办法快速反转提交的特定块.
我可以生成diff两个提交之间或HEAD看到差异.
我如何反转其中一个(或更好的,一组特定的帅哥)?
可能重复:
使用.git/info/exclude太迟
.gitignore文件而不是忽略
git - 从源代码控制中删除文件(但不是从源代码中删除)
我有CVS/我.gitignore和我的.git/info/exclude文件.但由于某些原因,仍然会跟踪任何CVS文件夹的更改.
我已经厌倦了手动取消这些文件夹中的更改.
一旦决定跟踪CVS文件夹,我如何让它停止跟踪CVS文件夹?
例如,当比较如何管理内存时,以下两个函数是否相同:
$hello = 'hello';
my_echo($hello);
//Better or worse than
my_echo_ref($hello);
//case 1, no referencing:
function my_echo($word) {
echo $word;
}
//case 2, referencing:
function my_echo_ref(&$word) {
echo $word;
}
Run Code Online (Sandbox Code Playgroud) vimscript帮助文件在定义用户函数时说明:
函数名称必须以大写字母开头,以避免与内置函数混淆.
这是强制执行的,除了我通过查看其他代码发现的以下情况.
"This should not work.
"But it does as long as the function is in a file called 'overrides.vim'.
function! overrides#name() abort
echo 'Test overrides\name'
endfunction
"This should not work either.
"But it does as long as the file above is in a folder called 'plugin'.
function! plugin#overrides#name() abort
echo 'Test plugin\overrides\name'
endfunction
let stupid = {}
"This should not work.
"But it does aslong as the stupid Dictionary is defined.
function! stupid.name() abort
echo 'Test stupidname'
endfunction …Run Code Online (Sandbox Code Playgroud) 在白话,范围和背景有很多共同点.这就是为什么当我读到对两者的引用时我感到困惑的原因,例如下面关于闭包的文章中的引用:
范围是指可以访问变量和函数的位置,以及它在何种上下文中的执行.(@robertnyman)
据我所知,上下文只是对象的引用.
有人可以解释一下究竟什么是上下文,例如,在jQuery语法中使用的$(selector, context).并且对象的范围在它的上下文中是相同的吗?
更新:
我发现这篇有趣的文章讨论了JavaScript中的范围和上下文.
鉴于a $node,我试图在以下两种输出该$节点的方式之间做出决定.
或
$output = theme('node', $node);
Run Code Online (Sandbox Code Playgroud)
要么
node_build_content($node);
$output = drupal_render($node->content);
Run Code Online (Sandbox Code Playgroud)
他们似乎都给出了类似的结果,但在我选择一种方式而不是另一种方式之前,我应该考虑一些事情吗?
我希望能够在git仓库中保留两个单独的分支,即使分支可能包含类似的内容,也不会意外地合并.
是否有强制分支在git中保持独立的技巧?假设我有分支A和分支B,就像git merge B //assuming A is checked out失败一样.
这里关注的出现是因为在建立一个网站我开发的库我需要的HEAD中的主分支永远是稳定的网站的当前状态.
任何发展承诺我需要在发生发展与分支主题分支的的发展,如果有必要的分支.
C1-C2 master
\
C3-C4-C5-C6-C9-C10-C11 development
\
C7-C8-C12 topic/HEAD
Run Code Online (Sandbox Code Playgroud)
我需要确保主分支和其他分支之间偶然合并的可能性很小.
所以我正在寻找一种方法来介入与主分支合并之间的问题,"这个合并将在网站上发布,你确定要做吗?" 只有在我确认合并后才能通过.
我想这种情况只与Web开发人员相关,代码不需要编译才能运行,并且可能会在实时安装中提取稳定网站的副本.
为什么即使在用于创建它们的代码从DOM中删除之后脚本仍然可以运行?
我遇到了一个我希望防止脚本运行失败的情况(@see我的帖子).
在我尝试提出解决方案时,我使用以下行编写了一个扩展(只是为了看看会发生什么).
$('script', doc).remove();
/*doc is passed here because this script is running as a firefox extension
outside of the document context.*/
Run Code Online (Sandbox Code Playgroud)
我假设这将从DOM中删除所有脚本,因此没有脚本在页面上运行,但事实并非如此.
我想更多地了解这种行为背后的原因.
git ×4
javascript ×3
jquery ×3
branch ×1
definition ×1
dom ×1
drupal ×1
drupal-6 ×1
git-archive ×1
git-merge ×1
git-workflow ×1
merge ×1
php ×1
scope ×1
syntax ×1
vim ×1