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

javascript prototype

 
下面都是个人理解以及查找的网上的资料,如有不对的地方请指正
prototype
prototype在这里是原型的意思,不是指那个框架...
每个函数就是一个对象(Function),当函数被解析后会添加一个prototype的对象,然后prototype会添加一个constructor的属性
它指向那个函数的
比如定义一个function test(){}
它会自动添加一个prototype ; 即test.prototype={}
 然后 prototype会自动添加一个test.prototype.constructor =test  它是指想函数本身的
可以测试一下 例子如下
function test(){
alert('a');
}
alert(test.prototype); //可以看出是obj
test.prototype.constructor(); //可以看出是执行了test

一个类,如何实例化成一个对象了,类里面的prototype里的属性又是怎么成为实例里面的属性的了
这里不得不说一下new 的过程
大概可以分成3步
这个例子可真好呀  哈哈
<1> var p={}; 也就是说,初始化一个对象p。
<2> p.__proto__=Person.prototype;
<3> Person.call(p);也就是说构造p,也可以称之为初始化p。
别人给的一个new的过程
/*
new操作原理(spiderMonkey引擎下)
*/
var a = function(sA,sH){
var x = "x";
this.a = sA;
this.h = sH;
this.say = function(){alert(this.a+','+x)}
}
a.prototype.hi = function(){alert(this.h)}
var createInstance = function(source){
var p = {}
var args = Array.prototype.slice.call(arguments,1);
source.apply(p,args);
p.__proto__ = source.prototype;
return p;
}
var A = createInstance(a,"A","hi A");
A.say();
A.hi();
如一个类 ,new 之后的对象如下
function test(){
this.name="taozi";
}
test.prototype={
sex : "nan"
}
var ss = new test();
/*
ss就相当于
{
name : "nan",
__proto__ : {sex : "nan"}
}
*/
//可以测试一下
alert('-----------我是华丽的分割线');
alert(ss.__proto__ === test.prototype); //记得在firefox下测试 ie下无法访问到__proto__ 可以看到弹出来的是true
 __proto__这个也得介绍一下,它是个好东西.....
每个对象在初始化的时候都会有这么一个属性;
如: (请在firefox下测试)
var test ={};
alert(test.__proto__);  //可以看但弹出的是obj
当有一个对象 假如是test ;查找他的a属


相关文档:

Javascript事件绑定的几种方式(百度电话面试题)

 Javascript的事件绑定主要有四种方法(一下在IE中运行正常,但不保证其他浏览器):
  [注:onXXX为某一事件,fun为某一function,domId为某一DOM对象id,event类型见后边附录。]
1、在DOM中,直接用onXXX="fun();"进行绑定 
2、在Javascript代码中用 DOM对象.onXXX=fun 进行绑定
3、用 DOM对象.attach ......

javascript 面向对象开发

面向对象已不再是指封装、继承、抽象等设计方法,目前已经涉及到面向对象的分析(OOA,Object Oriented Analysis),面向对象的设计(OOD,Object Oriented Design)及面向对象的编程实现(OOP,Object Oriented Programming)。本片文章主要讨论的是如何实现Javascript的面向对象设计。
Javascript是脚本语言,是基于对象 ......

javascript+css 实现tab功能

<!---------<html>
    <head>
        <style type="text/css">
.tabheader table {
  border-collapse: collapse; /* for IE */
  border-spacing: 0; /* for N6 */
}
.tabheader table tr td {mar ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号