JavaScript 是一段段地执行的。一段代码中的定义式函数语句会优先执行,这似乎有点象静态语言的编译概念。所以,这一特征也被有些人称为:JavaScript 的“预编译”。
函数就是对象,只不过比一般的对象多了一个括号“()”操作符,这个操作符用来执行函数的逻辑。
call方法举例说明
function WhoAmI() //定义一个函数WhoAmI
{
alert("I'm " + this.name + " of " + typeof(this));
};
WhoAmI(); //此时是this 当前这段代码的全局对象,在浏览器中就是window 对象,其
name 属性为空字符串。输出:I'm of object
var BillGates = {name: "Bill Gates"};
BillGates.WhoAmI = WhoAmI; //将函数WhoAmI 作为BillGates 的方法。
BillGates.WhoAmI(); //此时的this 是BillGates。输出:I'm Bill Gates of obje
ct
var SteveJobs = {name: "Steve Jobs"};
SteveJobs.WhoAmI = WhoAmI; //将函数WhoAmI 作为SteveJobs 的方法。
SteveJobs.WhoAmI(); //此时的this 是SteveJobs。输出:I'm Steve Jobs of o
bject
WhoAmI.call(BillGates); //直接将BillGates 作为this,调用WhoAmI。输出:I'm B
ill Gates of object
WhoAmI.call(SteveJobs); //直接将SteveJobs 作为this,调用WhoAmI。输出:I'
m Steve Jobs of object
BillGates.WhoAmI.call(SteveJobs); //将SteveJobs 作为this,却调用BillGates 的
WhoAmI 方法。输出:I'm Steve Jobs of object
SteveJobs.WhoAmI.call(BillGates); //将BillGates 作为this,却调用SteveJobs 的
WhoAmI 方法。输出:I'm Bill Gates of object
WhoAmI.WhoAmI = WhoAmI; //将WhoAmI 函数设置为自身的方法。
WhoAmI.name = "WhoAmI";
WhoAmI.WhoAmI(); //此时的this 是WhoAmI 函数自己。输出:I'm WhoA
mI of function
({name: "nobody", WhoAmI: WhoAmI}).WhoAmI(); //临时创建一个匿名对象并
设置属性后调用WhoAmI 方法。输出:I'm nobody of object
在 JavaScript 中,prototype 不但能让对象共享自己财富,而且prototype 还有寻根问祖的
天性,从而使得先辈们的遗产可以代代相传。当从一个对象那里读取属性或调用方法时,如果该对象自身
不存在这样的属性或方法,就会去自己关联的prototype 对象那里寻找;如果prototype 没有,又会去p
rototype 自己关联的前辈prototype 那里寻找,直到找到或追溯过程结束为止。
1 function Person(name) //基类构造函数
2 {
3 this.name = name;
4 };
5
6 Person.prototype.SayHello = function() //给基类构造函数的prototype 添加方法
7 {
8 alert("Hello, I'm " + this.name);
9 };
10
11 function Employee(name, salary) //子类构造函数
12 {
13 Person.call(this, name); //调用基类构造函数
14 this.salary = salary;
15 };
16
17 Employee.prototype = new Person(); //建一个基类的对象作为子类原型的原型,
这里很有意思
18
19 Employee.prototype.ShowMeTheMoney = function() //给子类添构造函数的pr
ototype 添加方法
20 {
21 alert(this.name + " $" + this.salary);
22 };
23
24 var BillGates = new Person("Bill Gates"); //创建基类Person 的BillGates 对象
25 var SteveJobs = new Employee("Steve Jobs", 1234); //创建子类Employee
的SteveJobs 对象
26
27 BillGates.SayHello(); //通过对象直接调用到prototype 的方法
21
28 SteveJobs.SayHello(); //通过子类对象直接调用基类prototype 的方法,关注!
29 SteveJobs.ShowMeTheMoney(); //通过子类对象直接调用子类prototype 的方法
30
31 alert(BillGates.SayHello == SteveJobs.SayHello); //显示:true,表明prototyp
e 的方法是共享的
分享到:
相关推荐
本学习笔记旨在帮助初学者快速掌握JavaScript的核心概念和技术,实现从入门到精通的过渡。 1. **基础语法** - 变量声明:JavaScript支持var、let和const关键字声明变量,理解它们的作用域和提升特性至关重要。 - ...
本学习笔记将深入探讨JavaScript的核心概念,包括变量、数据类型、操作符、控制流程、函数、对象、数组、原型链、闭包等,并结合实际示例,如my.js、order.js、login.js等文件,来讲解其在实际项目中的应用。...
这篇学习笔记主要涵盖了JavaScript的基础语法和客户端JavaScript的相关知识。 1. **JavaScript基本语法**: - **变量声明**:未声明的变量尝试读取时会产生错误,而写入未声明的变量会创建一个全局变量。 - **...
这份"javascript入门学习笔记"旨在为初学者提供一个全面且深入的JavaScript学习路径。 一、基础语法 JavaScript的基础包括变量、数据类型、操作符、流程控制等。变量用于存储数据,数据类型分为基本类型(如字符串...
在JavaScript中,对象是核心概念之一,它们是无序...学习和掌握JavaScript对象的创建、属性访问以及原型机制,对于深入理解和使用JavaScript至关重要。理解并熟练运用这些知识点,可以有效地构建复杂的应用程序和组件。
总结一下,JavaScript面向对象编程主要包括类的表示(通过构造函数)、对象的创建(对象工厂、构造函数、原型模式)以及继承的实现(原型链)。理解这些概念对于深入学习JavaScript和开发复杂的JavaScript应用至关...
根据提供的文件信息,可以看出这份“我的javascript学习笔记”主要涵盖了JavaScript中的几个关键概念和技术要点,包括正则表达式、AJAX以及一些JavaScript的核心语言特性。接下来将这些知识点进行详细的整理和解释。...
这个“javaScript学习笔记.rar”压缩包显然包含了作者在学习JavaScript过程中的心得和记录,对于初学者或者想要深入理解JavaScript的人来说,是一份宝贵的资源。 JavaScript与Java虽然名字相似,但两者实际上是不同...
这篇"JavaScript入门新手学习笔记"提供了全面的学习资源,适合初学者系统性地掌握这一技术。 笔记可能包含了以下关键知识点: 1. **基础语法**:JS的基础包括变量(var、let、const)、数据类型(如字符串、数字、...
JavaScript的继承基于原型链,每个对象都有一个`__proto__`属性指向它的构造函数的原型。通过原型,我们可以实现属性和方法的共享。ES6引入的类(class)语法,虽然语法上类似传统面向对象语言,但其实质仍然是基于...
JavaScript 基础学习笔记 本资源摘要信息基于黑马视频记录的学习笔记,涵盖了 JavaScript 基础知识点,包括 HTML、CSS、JavaScript、DOM、事件处理等内容。 HTML 和 CSS 基础 * HTML 结构:head、body、title、...
《李炎恢Javascript笔记》是一本深入浅出的JavaScript学习资料,它涵盖了JavaScript的基础到实践应用的诸多方面。这本书的特点是将复杂的编程概念分解为易于理解的小知识点,并且提供了源码示例,使得读者能够更好地...
总结,JavaScript的面向对象编程主要涉及到构造函数、属性、方法、this关键字、原型链以及封装和继承等概念。理解这些基础是编写高效、可维护的JavaScript代码的关键。在实践中,开发者还需要考虑作用域、闭包、异步...
JavaScript 学习笔记 JavaScript 基础知识 JavaScript 是一种高级的、动态的、基于对象的脚本语言,主要用于客户端的脚本编程。 JavaScript 代码可以嵌入到 HTML 文件中,以便控制浏览器的行为。 JavaScript ...
总之,JavaScript学习笔记涵盖了从基础语法到高级特性的广泛内容,包括数据类型、控制结构、函数、对象、数组、DOM操作、事件处理、错误处理、异步编程以及其在Web开发中的实际应用。通过深入学习这些知识点,你将...
### JavaScript基础教程笔记知识点 #### 一、JavaScript简介 - **定义**:JavaScript是一种轻量级的编程语言,主要用于Web浏览器中的网页交互控制。 - **发展历史**:1995年由Netscape公司的Brendan Eich设计并...
JavaScript是一种广泛应用...以上就是JavaScript学习笔记中的主要知识点,理解和掌握这些内容对于深入学习JavaScript至关重要。在实际编程中,还需要结合具体的场景灵活运用,并不断实践和探索更高级的特性和最佳实践。
个人在学习前端JavaScript时的学习笔记,内含JavaScript的中基础知识点,以及案例。里面有兼容市面上浏览器的方法 1.知识点包括:基础语法,字符串操作,object对象,DOM对象,BOM对象,offset,client,scroll对象...