今天找到了一个很nice的js网站 ,不!是两个 一个博客,一个网站
来源:互联网 发布:linux nc命令 编辑:程序博客网 时间:2024/05/01 20:09
http://bonsaiden.github.com/JavaScript-Garden/zh/
// 译者注:来自 Nettuts+ 的一段代码,生动的阐述了 JavaScript 中变量声明提升规则
var myvar ='my value';
(function(){
alert(myvar);// undefined
var myvar ='local value';
})();
这个不理解
匿名包装器是个好东西:
推荐使用匿名包装器(译者注:也就是自执行的匿名函数)来创建命名空间。这样不仅可以防止命名冲突, 而且有利于程序的模块化。
eval
只在被直接调用并且调用函数就是 eval
本身时,才在当前作用域中执行
博客:
http://www.cnblogs.com/TomXu/archive/2011/12/15/2288411.html
第三篇:全面解析Module模式 有一块不懂
跨文件共享私有对象
通过上面的例子,我们知道,如果一个module分割到多个文件的话,每个文件需要保证一样的结构,也就是说每个文件匿名函数里的私有对象都不能交叉访问,那如果我们非要使用,那怎么办呢? 我们先看一段代码:
var blogModule = (function (my) { var _private = my._private = my._private || {}, _seal = my._seal = my._seal || function () { delete my._private; delete my._seal; delete my._unseal; }, _unseal = my._unseal = my._unseal || function () { my._private = _private; my._seal = _seal; my._unseal = _unseal; }; return my;} (blogModule || {}));
任何文件都可以对他们的局部变量_private设属性,并且设置对其他的文件也立即生效。一旦这个模块加载结束,应用会调用 blogModule._seal()"上锁",这会阻止外部接入内部的_private。如果这个模块需要再次增生,应用的生命周期内,任何文件都可以调用_unseal() ”开锁”,然后再加载新文件。加载后再次调用 _seal()”上锁”。
完全没看懂
5.强大的原型与原型链
// 使用{}对象的 hasOwnProperty,并将其上下为设置为foo
{}.hasOwnProperty.call(foo, 'bar'); // true
可以避免hasOwnProerty 被非法占用
http://www.mollypages.org/misc/js.mp这个地址有原型链的图,研究一下啊
全局上下文的变量对象是从“Object.prototype”中继承的,所以我们可以得到没有声明的全局变量,从原型链中获取;(在sprider Monkey中)
with的作用域链:优先从Object.protoype中查找,如下图所示
汤姆大叔的javascript的闭包描述的很好,自己写一个
几个函数可能含有相同的父级作用域(这是一个很普遍的情况,例如有好几个内部或者全局的函数)。在这种情况下,在[[Scope]]中存在的变量是会共享的。一个闭包中变量的变化,也会影响另一个闭包的
function baz() { var x = 1; return { foo: function foo() { return ++x; }, bar: function bar() { return --x; } };} var closures = baz(); console.log( closures.foo(), // 2 closures.bar() // 1);
如图所示:
第十二章:变量对象
只有全局上下文的变量对象允许通过VO的属性名称来间接访问(因为在全局上下文里,全局对象自身就是变量对象,稍后会详细介绍),在其它上下文中是不能直接访问VO对象的,因为它只是内部机制的一个实现。
第十五章:
不理解下面这个分组操作符
// "foo" 是一个函数声明,在进入上下文的时候创建 alert(foo); // 函数 function foo(x) { alert(x);}(1); // 这只是一个分组操作符,不是函数调用! foo(10); // 这才是一个真正的函数调用,结果是10
注意,下面一个立即执行的函数,周围的括号不是必须的,因为函数已经处在表达式的位置,解析器知道它处理的是在函数执行阶段应该被创建的FE,这样在函数创建后立即调用了函数。
var foo = { bar: function (x) { return x % 2 != 0 ? 'yes' : 'no'; }(1) }; alert(foo.bar); // 'yes'
尝试一下
很不错,慢慢啃
- 今天找到了一个很nice的js网站 ,不!是两个 一个博客,一个网站
- 找到了一个网站,内容很多
- 找到一个好网站
- 准备动手写一个博客网站了
- 找到了一个讲STL的博客
- 找到一个很好的FLASH网站
- 找到一个专门学习devExpress的网站
- 最近建了一个新的php博客网站
- #node.js + express4 写一个自己的博客网站[1]
- node.js + express4 写一个自己的博客网站[2]
- 找到一个桌面开发网站
- 很好的一个js网站
- 一个神奇的JS网站
- 一个不错的JS网站
- 今天在一个网站算命的结果
- 一个不粗的JS插件库网站
- 找到一个非常好的网站制作学习网站
- 朋友今天给了一个网站链接,是各种命令参考手册:refcards.com
- Oracle 查看索引语句
- Android中java.lang.NoClassDefFoundError
- ORACLE PL/SQL编程之把过程与函数说透
- js、html中的单引号、双引号及其转义使用(转)
- Joomla! 1.6/1.7/2.5 Privilege Escalation Vulnerability
- 今天找到了一个很nice的js网站 ,不!是两个 一个博客,一个网站
- 分页存储过程
- Windows 服务快捷启动命令
- nginx + syslog
- C#读取word表格到DataTable
- 彭博社报告称中国油价负担全球第四
- hadoop 创建用户及hdfs权限,hdfs操作等常用shell命令
- C#中关于using的用法
- MongoDB Win32下学习