面向对象的编程特点#
不像JAVA、C++这些面向对象的语言建立在类和继承基础上(类继承),JavaScript仅仅只有对象的概念。因此,JavaScript不能通过实例化类来产生对象,它是一种原型继承。
class1 = function() {
// var定义的私有变量
var m_first = 1;
var m_second = 2;
// 两种定义方法的形式
function method1() {
alert(m_first);
}
var method2 = function() { //匿名函数赋予私有变量,也就是函数直接量
alert(m_second);
}
// 公有静态变量
class1.field1 = 1;
// 公有静态方法
class1.method1 = function() {
alert(class1.field1);
}
// 构造函数,或者定义私有变量引用构造函数
{ //加括号更清晰
method1();
method2();
}
// 构造函数,使用私有变量引用构造函数
function constructor() {
method1();
method2();
}
constructor();
}
var o = new class1();
// error
alert(o.m_first);
o.method1();
构造函数#
JavaScript没有构造函数的概念,所有的function都可以作为构造函数来产生对象,产生对象利用new操作符。与Java等静态语言在编译时就把对象的属性和方法确定下来不同,JavaScript可以在运行时动态的增加对象的属性和方法。
function WorkerBee () { //构造函数
this.projects = [];
}
jane = new WorkerBee();
jane.salry = 4000; //动态指定了salry属性
JavaScript利用prototype产生继承
function Manager () {
this.reports = [];
}
Manager.prototype = new Employee; //Manager继承自Employee
function WorkerBee () {
this.projects = [];
}
WorkerBee.prototype = new Employee;
当指定了继承关系后,由于JavaScript解释器会沿着prototype链来查找变量,所以子类未定义的变量(相当于属性)都来自于父类;而如果在继承类中重新定义父类存在的变量,父类的变量就被覆盖了,相当于实现了OverRide机制。
利用“||”运算符可以实现overload机制,例如
function Worker(name){
this.name = name || ""; //name若没有参数则赋值""
}
相当于JAVA代码:
class Worker{
Worker(String name)
{
this.name = name;
}
Worker()
{
this.name = "";
}
}
由于JavaScript的灵活性,实现继承的方法不局限于此,JavaScript的继承就总结了数种写法。
浏览器载入#
参考文章#
理解 JavaScript 闭包,对闭包介绍的比较透彻的文章,很长
JavaScript的继承,通过Java和JavaScript的对比,讨论了JavaScript的继承体系
在Javascript中使用面向对象的编程
在Javascript中使用面向对象
用函数式编程技术编写优美的 JavaScript
跨越边界: JavaScript 语言特性
参考书籍#
JavaScript权威指南
分享到:
相关推荐
总的来说,《JavaScript核心参考手册》是一部全面的指南,它不仅覆盖了语言基础,也包含了许多高级话题,对于希望深入理解和精通JavaScript的开发者来说,无疑是一份宝贵的参考资料。通过阅读并实践书中的内容,你将...
JavaScript核心技术 简介: 《JavaScript核心技术》对于各种浏览器、浏览器版本、JavaScript版本、DOM版本的介绍,有助于我们理解所遇到的各种新旧代码,使我们能够对这些代码做出正确的取舍。《JavaScript核心技术》...
资源名称:JavaScript核心概念及实践内容简介:《Javascript核心概念及实践》不仅帮助读者迅速掌握Javascript基础知识和核心技术,而且通过实例讲解如何将这些知识和技术理解应用到实际工作中,提升编程...
这个"JavaScript核心"系列深入探讨了语言的各个方面,旨在帮助读者全面理解其内核。 1. **前言及概述**:作者通过自己的学习历程引出了JavaScript的重要性和发展历程。随着Ajax的普及,JavaScript不再仅仅是创建...
除了以上基础核心概念外,《JavaScript核心技术.pdf》还可能涵盖了以下进阶主题: #### 8. 类与面向对象编程 - **类**:ES6引入的新特性,用于定义对象的蓝图。 - **继承**:子类可以从父类继承属性和方法。 - **...
如果你是对javascript没有任何基础的小菜,就不要下载它了,因为它并非JavaScript教程,下载了你可能不懂用。 如果你是javascript的老菜,对javascript内置对象与函数非常熟悉,你也不要下载它,下了你也不必查它。
总之,通过这个"JavaScript核心教程,从菜鸟到老鸟"的学习,你将系统地掌握JavaScript的基础知识,并逐步进阶,最终在前端开发领域游刃有余。无论是jQuery的高效DOM操作,还是JavaScript的高级特性,都将为你的编程...
这个压缩包包含三部分资源:JavaScript语言中文参考手册、JavaScript核心参考手册以及微软JavaScript手册,这些都是深入理解和学习JavaScript的重要资料。 1. **JavaScript语言中文参考手册**: 这部分手册详细...
HTML5和JavaScript是现代网页开发中的核心技术,它们的结合为创建动态、交互式的网页内容提供了强大的支持。在“HTML5+JavaScript动画基础”这个主题中,我们深入探讨如何利用这两者构建引人入胜的动画效果。 首先...
本文将深入探讨JavaScript的核心基础知识以及进阶概念,包括DOM、BOM和事件处理。 DOM(Document Object Model)是W3C标准的一种,它将HTML或XML文档表示为一棵可编程的对象树。在JavaScript中,DOM允许我们通过...
本核心指南将深入讲解JavaScript的基础概念,同时涵盖了一些在软件公司笔试中常见的题目类型。 首先,让我们从基础开始。JavaScript是一种解释型的、弱类型的、基于原型的脚本语言。这意味着它不需要预编译,可以在...
本教程旨在为初学者提供一个全面的JavaScript基础知识学习平台,帮助理解并掌握这种强大的脚本语言。 《JavaScript基础教程》首先会介绍JavaScript的历史背景和基本语法,包括变量、数据类型、操作符、流程控制...
本书“JavaScript核心技术开发解密”由阳波撰写,旨在深入剖析JavaScript的核心技术,帮助读者掌握这门语言的精髓。书中包含232页的内容,覆盖了JavaScript的各个方面,为开发者提供了宝贵的资源和实践指导。 ...
"零基础学会JavaScript"的学习之旅将带你逐步掌握这门语言的基础到高级技巧。 首先,JavaScript的核心概念是变量、数据类型和操作符。变量用于存储数据,可以随时改变其值。数据类型包括基本类型(如字符串、数字、...
本教程“JavaScript核心基础”深入探讨了JavaScript的一些关键概念和技术,包括对象编程、闭包、封装和继承,以及类的不同实现方式。 一、JavaScript对象编程 在JavaScript中,对象是一种数据结构,它将数据和操作...
总的来说,这个压缩包提供了一个全面的JavaScript基础知识教程,涵盖了数据类型、Object、内置对象和变量等核心概念,对于初学者或者需要巩固基础的开发者来说,是一份非常有价值的参考资料。通过学习这些内容,可以...
#### 五、JavaScript核心概念 - **变量**:用于存储数据值的基本单元,如`var color = "blue";` - **数据类型**:包括数字(Number)、字符串(String)、布尔(Boolean)等基本类型,以及数组(Array)、对象(Object)等...