JavaScript面向对象程序设计(1): 前言
前一阵看EXTJS的几个例子,觉得JS的底子很差,特别是JavaScript面向对象程序设计方面的知识,于是在网上搜索,找到几篇好的博客,于是转过来,以备后面的学习使用。
本博客转于:http://devbean.javaeye.com/blog/404032
1. 基于对象还是面向对象?
面向对象技术是现代软件开发中的重要技术之一。面向对象变成的好处毋庸置疑,现在的主流语言如Java、C++都是面向对象的。现在的面向对象理论更多的是使用Java或C++进行描述,究其根源,在于这些语言都是传统的面向对象语言,具有面向对象理论所指明的一切特性:类、封装、继承、多态等等。
相比而言,一些动态语言如JavaSript就显得不那么面向对象——至少,在JavaScript中并没有类class这一关键字。但是,在JavaScript中并不是没有类的概念。于是有人说,JavaScript是基于对象的语言,而不是面向对象的语言。
面向对象的语言具有三个特性:封装、继承和多态,三者缺一不可;基于对象的语言通常仅仅是使用对象,其实现的是封装,并没有提供后两种特性。的确,从语法上来说,JavaScript并没有特定的语法或者在语言级别上来实现继承和多态。但是,这并不妨碍我们使用这些特性。这是因为,JavaScript是一种灵活的语言,它是相当的灵活,以至于这些并没有提供的东西,更确切的说,是没有明确的表明的东西,都是可以实现和使用的!那么,你还能说JavaScript是基于对象而不是面向对象的吗?
面向对象也是一种思想,任何语言,包括C语言,同样可以使用面向对象的思想去解决现实生活中的各种问题。到底是基于对象还是面向对象,这些概念让计算机哲学家门去争论吧——相信他们的争论最终也会和先有鸡还是先有蛋的问题一样的结果——我们所要做的,是要使用这种语言提供的机制去解决我们的问题。
2. 为什么要有JavaScript的面向对象编程?
这个问题很严肃——这取决你问题的规模和应用的范围。就像JavaEE和PHP一样:PHP能实现的东西,JavaEE都能实现,那么,为什么还要有PHP?因为JavaEE太复杂了,对于一些简单的系统,根本没有必要是使用它,也就是所谓的“杀鸡焉用牛刀”。
JavaScript主要应用于Web开发中。在传统的Web开发模式中,JavaScript起到的是一些点缀的作用,只完成很有限的功能,例如表单验证等。于是,JavaScript多被当做一种过程性语言使用,很难完成复杂的功能。而今天Web2.0的时代,Ajax大行其道,很多复杂的脚本成为其必
相关文档:
方法一、
NPN_GetURL(m_Instance, "javascript:test()", NULL);
方法二、
NPVariant rval;
NPN_InvokeDefault(m_Npp, objectDisconnect ,NULL, 0,&rval);
NPN_ReleaseVariantValue(&rval);
以下是javascript
<script type="text/javascript">
&nb ......
经常会在js里用到数组,比如 多个名字相同的input, 若是动态生成的, 提交时就需要判断其是否是数组.
if(document.mylist.length != "undefined" ) {} 这个用法有误.
正确的是 if( typeof(document.mylist.length) != "undefined" ) {}
或 if( !isNaN(document.mylist.length) ) {}
typeof的运算数未定义,返回的就是 "u ......
很多人都不愿意写javascript代码,我觉得主要原因在于javascript代码比较零碎,涉及的知识面比较广,要写好javascript代码,就不得不了解html,css等,所以要学好javascript并不是一件容易的事。如果要是有比较好的开发工具的话,相信大家学起来会简单一些。下面给大家介绍一些学习javascript的工具:
1、如何快速看 ......
我们已经知道,在 document 对象中有一个 cookie 属性。但是 Cookie 又是什么?“某些 Web 站点在您的硬盘上用很小的文本文件存储了一些信息,这些文件就称为 Cookie。”—— MSIE 帮助。一般来说,Cookies 是 CGI 或类似,比 HTML 高级的文件、程序等创建的,但是 javascript 也提供了对 Cookies 的很 ......
10:33:41 2009-11-14
function checkDate() {
//取得date的值
if(!document.getElementById || !document.createTextNode()){return;}
var dateFiled = document.getElementById('date');
if(!dateFiled) {return;}
var dateValue = dateFiled.value;
var checkPattern = new RegExp("\\d{2}/\\d{2}/\\d ......