JavaScript快速充电

来源:网络 责任编辑:栏目编辑 发表时间:2013-07-01 07:21 点击:

 

 

Netscape发明的,思想来自函数语言Schema和Self,有点接近Python.

特征:弱类型,动态解析,函数是对象,对象基于Prototype

前三个特征容易理解,最后一个要重点解释。

 

最基本的最佳实践:在大型程序中使用Fuction和对象!不要流水账式编程。

 

The easiest way to create an object is:

var myObject = new Object();

 

JavaScript对象本质上是关联数组。

 

小提示:注意将函数赋给变量时使用functionName()与functionName的区别,前者是将函数的结果付给变量,而后者将函数引用付给变量。

 

可以使用JSON创建和修改JavaScript对象,JavaScript也可以修改JSON创建的对象。

 

构造函数/类/prototype属性

JavaScript也有对象和类的概念,但是没有内建继承的概念。事实上,每个JavaScript对象都是相同基类的实例。这个基类有能力在运行时将成员字段和函数与自己绑在一起。

 

安全的替代品:prototype属性

prototype是JavaScript对象的一个属性,在OO语言中没有对等物。函数和属性可以与构造函数的prototype关联起来。然后prototype和new关键字协同工作,当使用new调用函数时,函数prototype的所有属性和方法会附加到结果对象上。

Java代码 

function MyObject(name, size){  

this.name = name;  

this.size = size;  

}  

 

MyObject.prototype.tellsize = function(){   

alert("size of "+this.name+" is "+this.size);  

}  

 

var myObj = new MyObject("tiddles", "7.5 meters");  

myObj.tellSize(); 

 

function MyObject(name, size){

this.name = name;

this.size = size;

}

 

MyObject.prototype.tellsize = function(){

alert("size of "+this.name+" is "+this.size);

}

 

var myObj = new MyObject("tiddles", "7.5 meters");

myObj.tellSize();

 

 

注意,在声明构造函数之后,我们才能引用prototype,对象之恩那个继承那些在调用构造函数之前就已经附加到prototype上的东西。prototype可以在两次调用构造函数之间进行修改,并且可以附加任何东西,不仅仅是函数,到prototype上。

 

使用prototype来为JavaScript对象定义类似于类的行为,是一条安全和可靠的路径。

 

扩展内建类

在Web浏览器中,一些核心类是可以通过prototype机制进行扩展的。

Java代码 

Array.prototype.indexOf = function(obj) {  

var result = -1;  

for (var i=0; i< this.length; i++) {  

if (this[i]==obj){  

result=i;  

break;  

}  

}  

 

Array.prototype.indexOf = function(obj) {

var result = -1;

for (var i=0; i< this.length; i++) {

if (this[i]==obj){

result=i;

break;

}

}

}

 

 

prototype的继承

JavaScript没有本地实现,不过有一些灵巧的变通方法。

 

JavaScript对象的反射

用于发现对象的类型

 

事件处理和函数上下文

在编程方式声明Dom元素的事件处理函数时,即使没有为函数分配参数,当点击Dom元素时,Event对象作为了函数调用的参数,元素本身作为上下文对象。

 

如果希望事件处理函数引用它附加到的模型对象,有两种方法:

1.使用名称引用模型

2.向Dom节点附加模型

摘自:Grocery Store

    相关新闻>>

      发表评论
      请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
      用户名: 验证码:点击我更换图片
      最新评论 更多>>

      推荐热点

      • Gb2312转utf-8编码的方法(vbs+js)
      • 如何使用Ajax技术开发Web应用程序(1)
      • js跳转路径问题
      • JavaScript模仿桌面窗口
      • 用js检测两个线段是否相交
      • 我知道的JavaScript -- 设计模式(桥接)应用之 – 验证器
      • 运用JavaScript构建你的第一个Metro式应用程序(on Windows
      • 我是如何去了解jquery的(六),案例之幻灯片轮换
      • Jquery封装幻灯片效果
      网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
      Copyright © 2008-2015 计算机技术学习交流网. 版权所有

      豫ICP备11007008号-1