您正在查看 "Js Oo" 分类下的文章
2009年09月14日 星期一 下午 10:06
Package management in JavaScript
JavaScript does not provide any package management features. There is no standard way to specify that one module of code depends upon other modules being available. All external JavaScript (.js) files required for an application must be loaded directly by the host web page. Unless we do something clever, this means that any changes to the dependenices of a .js file requires |
2009年08月15日 星期六 上午 10:02
开发者易犯的一个常见的错误是对JavaScript中false值的缺乏理解。在JavaScript里,null,0,"",false,和 undefined全部彼此相等(==),因为它们的计算值都为false。这意味着如果你使用代码test==false,则它在test为 undefined或null时,也会得到结果true,这可能并非你所期望的。
这正是!==和===有用的地方。这两个操作符都将检查变量的精确值(比如null),而不是单看其计算值(如false)。JSLint要求你任何时候你使用==和!=进行真假判断时,都必须用!==或===替代。下面程序展示了这些操作 |
2009年06月11日 星期四 下午 12:46
起初对于Display和visibility区别只是知道在于是否占据物理空间,没有很深刻的理解,直到遇到一个问题,才明白了这占据物理空间的意义。
先看区别:
display:none
CSS1 隐藏对象。与 visibility 属性的hidden值不同,其不为被隐藏的对象保留其物理空间
visibility:hidden
对象隐藏,与 display 属性不同,此属性为隐藏的对象保留其占据的物理空间。
下面引入问题:如果想要获得被指定了display=‘n |
2009年05月09日 星期六 下午 06:07
function IEContentLoaded (w, fn) { var d = w.document, done = false, |
2009年03月13日 星期五 下午 04:45
Currying好像是函数式语言都有的一个特性,比如Perl,Python,Javascript。
那么到底什么是Currying,我是在学习Closure时无意中接触到这个定义的,觉得很是有趣。
先看看 Wiki 中的定义:
Curryingis the technique of transforming afunctionthat takes multiplearguments
in such a way that it can be called as a chain of functions each with a single argument.
大概的意思就是说,将拥有多个参数的函数Currying化为拥有单一参数的函数形式。
下面举一个简单的例子 |
2009年01月11日 星期日 下午 09:00
函数是进行模块化程序设计的基础,编写复杂的Ajax应用程序,必须对函数有更深入的了解。JavaScript中的函数不同于其他的语言,每个函数都是作为一个对象被维护和运行的。通过函数对象的性质,可以很方便的将一个函数赋值给一个变量或者将函数作为参数传递。在继续讲述之前,先看一下函数的使用语法:
function func1(…){…}
var func2=function(…){…};
var func3=function func4(…){…};
var func5=new Function();
这些都是声明函数的正确语法。它们和其他语言中常见的函数或之前介绍的函数定义方式 |
2008年09月24日 星期三 下午 11:20
setAttribute设置style属相只能在FF下正确运行,IE可以考虑下面这个变通的方案。
function rzCC(s){ for(var exp=/-([a-z])/; exp.test(s); |
2008年09月17日 星期三 下午 09:42
YUI
/**
* Returns the namespace specified and creates it if it doesn't exist
* <pre>
* YAHOO.namespace("property.package");
* YAHOO.namespace("YAHOO.property.package");
* </pre>
* Either of the above would create YAHOO.property, then
* YAHOO.property.package
*
* Be careful when naming packages. Reserved words may work in some browsers
* and not others. For instance, the following will fail in Safa |
2008年09月14日 星期日 上午 00:55
The code
function sleep(milliseconds) {
var start = new Date().getTime();
for (var i = 0; i < 1e7; i++) {
if ((new Date().getTime() - start) > milliseconds){
break;
}
}
}
Usage
Sleep for 1 second (1000 milliseconds):
console.log(new Date());
console.log('Dude!');
sleep(1000);
console.log(new Date()); |
2008年07月15日 星期二 下午 01:41
对象的定义:“属性的无序集合,每个属性存放一个原始值、对象或函数”。
前几天看《pro javascript techniques》一书时,看到这样几句话:
从语言的视角看,面向对象的编程和面向对象的javascript绝对不是什么现代的东西;从刚开始javascript就 被全面的设计为面向对象的语言
下面呢,就 介绍一下,定义类或对象的几 |
2008年06月12日 星期四 下午 08:10
2008年05月22日 星期四 下午 04:49
要成为高级 JavaScript 程序员,就必须理解闭包。
本文结合 ECMA 262 规范详解了闭包的内部工作机制,让 JavaScript 编程人员对闭包的理解从“嵌套的函数”深入到“标识符解析、执行环境和作用域链”等等 JavaScript 对象背后的运行机制当中,真正领会到闭包的实质。
原文链接:JavaScript Closures
可打印版: |
2008年05月09日 星期五 上午 02:52
解释
ECMAScript是一种由欧洲计算机制造商协会(ECMA)通过ECMA-262标准化的脚本程序设计语言。这种语言在万维网上应用广泛,它往往被称为JavaScript或JScript,但实际上后两者是ECMA-262标准的扩展。
历史
1995年12月 太阳公司(SUN)与网景通讯公司(Netscape)一起引入了JavaScript。
1996年03月 网景通讯公司发表了支持JavaScript的网景导航者2.0。
1996年08月 由于JavaScript作为网页的客户面脚本语言非常成功,微软将之引入 |
2008年03月24日 星期一 上午 01:07
2008年01月22日 星期二 下午 06:09
//留意它,让你手动调用事件(fireEvent)
Syntax
bFired = object.fireEvent(sEvent [, oEventObject])
|
|
|