Object
1.object创建
在JavaScript中,对象object就是一组引用reference的集合。可以直接创建一个,例如:
var obj = { name: 'Jack', height: 178 }; //这就是一个对象啦
如果想要习创建大量相似的对象,就需要一个类似模板的东西来完成这个任务。如果是使用Java等语言的同学知道这个模板就是 ”类“ (class),在JavaScript中没有class的概念,一个新对象是由一个prototype对象直接复制出来的。而构造函数在JavaScript中可以是任何函数,通常首字母大写来表示该函数用作构造函数。
2.构造函数、this和prototype
下面给出构造函数的写法,例如:
function User( name ) { this.name = name;//this 指向新创建的对象 this.sayName = function() { alert( this.name ); } } var user = new User('Jack'); user.sayName(); //'Jack';
注意到构造函数中的this关键字,this关键字在JavaScript中非常灵活,在构造函数中this指向新创建的对象。所以新创建的对象user的name属性被赋值为'Jack',sayName为一个函数。
考虑这个问题,每个user有一个自己的name没有问题,但是都拥有一个sayName属性是这种无状态的函数,是对内存的极大浪费,那我们要把这类通用的属性放在哪里呢,就是下面要介绍的prototype了。我们把sayName放到prototype上:
function User(name) { this.name = name; } User.prototype.sayName = function () { return this.name; } var user = new User('Jack'); var user1 = new User('Hello'); alert(user.sayName()); // 'Jack' alert(user1.sayName());// 'Hello' alert(user.sayName === user1.sayName);//true
这样user和user1的sayName就是同一个函数了。
3.继承
那如何实现其他语言中的继承呢,JavaScript是通过原型链实现的(prototype chain),例如:
function User(name) { this.name = name; } User.prototype.sayName = function () { return this.name; } function MaleUser(name) { this.name = name; this.gender = 'male'; } MaleUser.prototype = new User(); var maleUser = new maleUser('Jack'); alert(maleUser.sayName()); //'Jack'
注意MaleUser.prototype = new User();这行代码就是将User实例复制给MaleUser.prototype,这样就形成了原型链,sayName属性在MaleUser的原型上找不到,就到User的原型上去找。如果还找不到就一直找到Object的原型。最后,JavaScript是一门面向对象的语言,我们将在很多地方看到对象的身影。
小结:本文介绍了JavaScript的基础知识,由于JavaScript的写法比较灵活,想要看比较好的JavaScript class的实现?请移步这里。
小作业:去看看class的历史吧,亲~
相关推荐
### JavaScript入门和基础知识 #### 为什么学习JavaScript? 1. **前端技术的重要组成部分**:JavaScript能够对页面内容进行实时验证,减少不必要的服务器请求,降低服务器负担。 2. **增强用户体验**:利用...
JavaScript是Web开发中不可或缺的...理解并熟练掌握这些JavaScript基础知识,将为你的Web开发之路打下坚实的基础。在实践中不断探索和学习,你将能够构建复杂的交互式Web应用,利用JavaScript的强大力量创造无限可能。
本文将深入探讨JavaScript的基础知识点,包括语法、变量、数据类型、控制结构、函数、对象、数组、DOM操作等方面。 1. **JavaScript 语法基础** - 注释:单行注释`//`和多行注释`/*...*/` - 行与语句:以分号`;`...
### JavaScript编程基础知识详解 #### 一、JavaScript代码的放置与引入方式 1. **JavaScript代码应置于`<script></script>`标签内** - JavaScript 代码通常被包含在 HTML 文件中的 `<script>` 标签之间。 - 示例...
JavaScript基础知识的学习对于开发交互式Web应用程序至关重要。理解数组API和DOM操作,可以帮助开发者有效地处理数据和用户界面,提升网页的用户体验。通过不断实践和深入学习,可以掌握更复杂的JavaScript概念和...
### JavaScript基础知识点详解 #### 一、JavaScript简介 **JavaScript**是一种主要运行在客户端的脚本语言,它不需要经过编译就能直接由浏览器解析执行。这使得JavaScript成为了现代Web开发中不可或缺的一部分,...
以下是对文档中提到的一些关键JavaScript基础知识的详细解释: 1. **全局变量与局部变量**:全局变量在整个程序范围内都可访问,而局部变量只在定义它的函数内部有效。如果在函数外部定义变量,那么它是全局的;...
本教程旨在提供一个全面的JavaScript基础知识概览,帮助初学者快速入门并深入理解其核心概念。 一、JavaScript概述 JavaScript最初由Brendan Eich在 Netscape Navigator 浏览器中开发,主要用作客户端脚本语言,...
以下是对JavaScript语言基础知识点的详细总结: 1. 变量与数据类型: JavaScript 支持七种数据类型:Undefined、Null、Boolean、Number、BigInt、String 和 Symbol,以及一种复合类型——Object。变量声明使用 `...
### JavaScript知识点总结《一》 ...以上是关于JavaScript的基础知识点总结,涵盖了初步认识JavaScript以及JavaScript的基本语法等内容。这些知识点对于初学者来说非常重要,有助于快速入门并进一步深入学习。
《 Beginning JavaScript(第三版) 》是一本专为初学者设计的JavaScript编程指南,全面覆盖了JavaScript的基础知识和最新技术。这本书旨在帮助读者理解和掌握JavaScript的核心概念,从而能够利用这门语言开发动态网页...
1. **JavaScript基础**:变量、数据类型、操作符、流程控制、函数等基础知识。 2. **DOM(Document Object Model)**:通过JavaScript操作HTML元素的方法,如增删改查节点。 3. **BOM(Browser Object Model)**:...
### JavaScript语言基础知识点详解 #### 1. 变量定义 **JavaScript** 是一种广泛使用的脚本语言,常用于Web前端开发。对于初学者来说,理解变量定义的基础知识至关重要。 - **变量命名规则**: - 变量名区分大小...
下面,我们将深入探讨JavaScript的一些关键知识点。 1. **基础语法**:JavaScript的基础包括变量、数据类型(如字符串、数字、布尔值、null、undefined)、操作符(算术、比较、逻辑)、流程控制(条件语句、循环...
JavaScript 基础知识点 JavaScript 概述 JavaScript 是一种具有面向对象能力的、解释型的程序设计语言。它是一种松散类型的语言,变量不必具有一个明确的类型。 JavaScript 的主要目的是,验证发往服务器端的数据...
JavaScript基础PPT.zip文件很可能是某位讲师或教育机构为了教授JavaScript基础知识而编排的一套教学材料。以下是对JavaScript基础知识的详细阐述: 一、JavaScript简介 JavaScript是由Netscape公司的Brendan Eich在...
这份资源可能包含了一系列用于教学和学习JavaScript基础知识的示例程序。 **描述解读:** "图灵程序设计丛书"表明这是一个系列教程,出自图灵出版社的程序设计系列,通常这类丛书中会有系统的编程知识讲解,适合...
1. JavaScript基础知识:JavaScript是一种在浏览器中运行的脚本语言,它是实现网页动态效果和交云的核心技术之一。要精通DOM编程,首先要对JavaScript语言本身有足够的理解,包括变量、数据类型、运算符、函数、对象...
"JavaScript基础教程_Appendix"很显然是一个关于JavaScript入门学习的补充资料,可能包含了对JavaScript基础知识的深入解析、常见问题解答、实用技巧等内容。在这个教程中,我们可能会探讨以下几个关键知识点: 1. ...