JavaScript面向对象:自定义对象与函数表现形式解析

需积分: 0 0 下载量 62 浏览量 更新于2024-07-13 收藏 478KB PPT 举报
"JavaScript自定义对象与扩展" 在JavaScript中,函数是一种特殊的数据类型,可以作为值传递,也可以作为对象的属性。标题提到的几种函数创建方式,实际上展示了JavaScript的灵活性。下面我们将深入探讨这些创建函数的方法以及JavaScript的面向对象特性。 1. 函数声明: ```javascript function func1(a, b) { alert(a + b); } ``` 这是最传统的函数声明方式,通过`function`关键字定义了一个名为`func1`的函数。 2. 函数表达式: ```javascript var func2 = function(a, b) { alert(a + b); } ``` 这是一种函数表达式,匿名函数被赋值给变量`func2`。函数表达式可以延迟执行,而函数声明会立即执行。 3. 自定义函数名的函数表达式: ```javascript var func3 = function func4(a, b) { alert(a + b); } ``` 这种方式看起来像是函数声明,但实际上是函数表达式,因为函数名`func4`仅存在于该表达式内部。 4. `Function`构造器: ```javascript var func5 = new Function("a", "b", "alert(a+b)"); ``` 通过`Function`构造器可以动态创建函数,这里的参数分别是函数的参数和函数体。 5. 对象字面量: ```javascript var fun6 = {}; // 创建一个空对象 ``` 对象字面量通常用来创建具有属性的对象,但如果不需要实例化,可以作为构造函数使用。这里`fun6`是一个空的匿名构造函数,不是一个真正的函数。 6. 初始化对象属性: ```javascript var fun6 = {a: 1, b: 2}; ``` 这里`fun6`是一个具有属性`a`和`b`的对象,而不是函数。 在JavaScript中,面向对象编程是基于原型的,不同于Java和C#的类为基础的编程。这意味着我们不需要先定义一个类,然后实例化它。JavaScript的面向对象特性主要包括: 1. 构造函数: ```javascript function Person(name) { this.name = name; } ``` 构造函数用于创建特定类型的对象,`this`关键字用于引用新创建的对象。 2. 原型链: 每个JavaScript对象都有一个`__proto__`属性,指向创建该对象的构造函数的原型。通过原型,我们可以实现继承和共享属性。 3. 原型对象: ```javascript Person.prototype.sayName = function() { console.log(this.name); } ``` 通过`prototype`,我们可以为所有`Person`对象添加方法。 4. 新建实例: ```javascript var person1 = new Person('张三'); console.log(person1.name); // 输出 '张三' person1.sayName(); // 输出 '张三' ``` `new`关键字用于创建构造函数的新实例。 5. 动态扩展: JavaScript允许我们在对象创建后随时添加新的属性或方法,这体现了其灵活性。 总结来说,JavaScript提供了多种创建和使用函数的方式,同时其面向对象机制基于原型,允许开发者灵活地创建和扩展对象。理解这些概念对于深入学习JavaScript至关重要。