易截截图软件、单文件、免安装、纯绿色、仅160KB

javascript 原型对象与prototype的关系

    Javascript中的继承机制是所谓的原型对象继承,通过属性访问机制的特殊性来实现继承的。之前我一直以为所有对象的原型对象就是prototype所指的那个对象。后来在看javascript设计模式的时候发现作者注中有一句话与我之前的理解不同,他说“每个对象都有一个原型对象,但这并不意味着每个对象都有一个prototype属性”。看完我就有点迷茫了,决定彻底把这个死人的原型继承搞搞清楚。然后翻了些文章和书籍,最后终于在javascript权威指南第五版中找到了个人 认为比较权威的解释。关于原型链和属性访问机制我就不再阐述了,这方面可以看看Rocky的文章 写的蛮清楚的 http://blog.csdn.net/rocky_j2ee/archive/2009/03/21/4012385.aspx
    那我们先从创建对象说起,用new操作符创建对象的时候javascript会做3件事:
首先是创建一个空对象(empty object),
然后对这个空对象的原型对象进行赋值,
最后把这个空对象赋值给构造函数的this属性且运行这个构造函数。
function Person(name) {
    this.name = name;
}
var  p = new Person(); 相当于以下步骤:
1. Var p = {};
2. p.[[prototype]] = Person.prototype   //这一步是伪代码,实际上一个对象的原型对象是不能通过代码来访问的,
                                                              //这里只是为了说明创建对象的步骤
3. p.methodName = Person                   //这样的话Person的this就会指向p
   p.methodName();
      如果你对第二步不是很明白,那么先把代码放一放,接下来我会详细解释下第二步原型对象的赋值(或者说构造函数和原型对象的关系):
      上面我提到过在创建完一个空对象后,会初始化这个空对象的原型对象,javascript会把构造函数的一个叫做prototype的属性所指向的对象赋值给当前空对象的原型对象。所有的function都有一个prototype属性,当一个function被定义之后这个属性会被自动的创建和初始化。一个function 的prototype属性的初始值是一个对象(an object),这个对象只有一个属性叫


相关文档:

关于javascript模块加载的思索

最近一直为此头痛,姑且把我能想到的东西都写出来吧。由于不是简单把页面上手写的script转为javascript添加,我们需要考虑的东西主要有两个:加载的顺序,加载前后脚本的运作。
先说第一个,假如我们已有一加载机制了,要加载一个新模块,当然新模块是在另一个JS文件中。这时,我们可以描述为:
loader ---> a.js
这个加 ......

HTML+Javascript+XML


上面所说有关HTML的内容非常少又简单,但对已经了解的人来说就是没用的.
如有问题可到权威网 http://www.html.com/ 上查看
以下开始说说关于XML的一些知识.
XML也是标记语言,可它是自定义的,没有已给定格式.不具体说它,给出例子就可明了.

<NAME>TOM</NAME>
<SEX>M</SEX>
以上内容的< ......

Javascript 对象的比较

这个随笔其实是为了感谢清风笑给的一个提示,不仅仅是告诉我怎么判断数组,更让我有了认真读一读 《javascript权威指南》的想法。
比较和拷贝其实是一回事,代码如下:
//
//Compare object function
//
function Compare(fobj,sobj)
{
    var ftype = typ ......

javascript控制textbox字数的脚本 非常好用

以前做项目时候经常用到多行输入框字数的控制以及统计显示的情况,综合了几种情况后现在固定用了这个脚本。
例如 要输入描述textbox
<div>
<h3>
描述:</h3>
<asp:TextBox runat="server" ID="tbdesciption" Height="200px" TextMode="MultiLine" onkey ......

javascript calendar

<SCRIPT>
//判断y年的农历中那个月是闰月,不是闰月返回0
function leapMonth(y){
return(lunarInfo[y-1900]&0xf);
}
var lunarInfo=new Array(
0x04bd8,0x04ae0,0x0a570,0x054d5,0x0d260,0x0d950,0x16554,0x056a0,0x09ad0,0x055d2,
0x04ae0,0x0a5b6,0x0a4d0,0x0d250,0x1d255,0x0b540,0x0d6a0,0x0ada2,0 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号