JavaScript OOP入门:函数应用、对象封装与继承

需积分: 19 9 下载量 105 浏览量 更新于2024-08-18 收藏 185KB PPT 举报
"JavaScript与OOP-JavaScript与OOP js面向对象教程" JavaScript是一种广泛应用于Web开发的脚本语言,它支持面向对象编程(OOP)的概念,使得开发者能够构建复杂的应用程序。本教程主要涵盖了JavaScript OOP的几个关键知识点,包括Function对象的apply方法、自定义对象、封装、继承和多态。 1. **apply()方法** `apply()`是JavaScript中Function对象的一个内置方法,它可以改变函数调用时的上下文,即`this`的指向。`apply`接收两个参数,第一个参数`thisObj`用于设置函数执行时的上下文对象,第二个参数`argArray`是一个数组,包含了传递给函数的参数。这个方法常用于模拟多态性,以及在不同对象间共享方法。 ```javascript function Object1(name) { this.name = name; this.fun1 = function() { alert("这是第一个方法。"); }; this.fun2 = function() { alert("这是第二个方法。"); }; } function Object2(name) { Object1.apply(this, [name]); } var o2 = new Object2("中华人民共和国"); o2.fun1(); o2.fun2(); alert(o2.name); ``` 2. **自定义对象** 在JavaScript中,可以通过扩展其对象模型来自定义对象,这类似于Java中的类。例如,可以创建Math、Date、String等内置对象的扩展。 3. **原型(prototype)** JavaScript的原型机制允许在运行时为对象添加新的属性和方法。通过对象的`prototype`属性,我们可以为对象类型的所有实例添加共享的属性和方法。 4. **创建对象** 创建自定义对象通常有两种方式: - **对象初始化器方式**:这是一种常见的创建对象的方式,通过大括号{}定义对象,键值对表示属性和对应的值,值可以是任何数据类型,包括函数(方法)。 ```javascript var Users = { name: "中国", register: function(i) { alert("注册了" + i + "次"); } }; Users.register(3); ``` - **构造函数和new操作符**:通过构造函数和`new`关键字,可以创建具有特定结构的对象实例。 ```javascript function User(name) { this.name = name; this.register = function(i) { alert("注册了" + i + "次"); }; } var user = new User("中国"); user.register(3); ``` 5. **封装** 封装是面向对象编程的核心概念,它意味着将数据和操作这些数据的函数打包在一起,以隐藏内部实现细节。在JavaScript中,我们通过创建闭包或者使用私有变量来实现封装。 6. **继承** JavaScript的继承主要通过原型链实现,一个对象可以继承另一个对象的属性和方法。另外,ES6引入了`class`和`extends`关键字,提供了更接近传统面向对象语言的继承方式。 7. **多态** 多态是指同一种行为在不同对象上有不同的表现形式。JavaScript通过函数作为一等公民,以及动态类型,轻松实现了多态。例如,不同类型的对象可以拥有相同名称的函数,而根据实际对象的类型,函数会有不同的行为。 以上就是JavaScript与OOP的主要内容,理解并熟练掌握这些概念和技巧,对于进行高效、健壮的JavaScript编程至关重要。通过实践和不断学习,开发者可以利用JavaScript的面向对象特性构建复杂的Web应用程序。