JavaScript函数、方法、对象代码

preview
需积分: 0 0 下载量 156 浏览量 更新于2020-10-30 收藏 30KB PDF 举报
JavaScript是Web开发中不可或缺的一部分,尤其在前端领域,它的功能强大且灵活。本文将深入探讨JavaScript中的函数、方法和对象,以及它们在实际编程中的应用。 我们来看JavaScript中的函数。函数是一种可重用的代码块,可以接受输入参数并返回结果。函数定义可以嵌套在其他函数内部,形成子函数,这在模块化编程中非常常见。然而,需要注意的是,函数不能直接在循环或条件语句中定义,因为它们在这些结构中是不可执行的。例如,下面展示了两种函数定义方式: ```javascript // 函数直接量 var f = function(x) { return x * x; }; // 自执行匿名函数 var f = function fact(x) { if (x <= 1) return 1; else return x * fact(x - 1); }; ``` 在JavaScript中,每个函数都有一个内置的`arguments`对象,它包含了函数调用时传入的所有参数。你可以通过`arguments[i]`访问第i个参数,或者使用`arguments.length`获取传入参数的数量。 接下来是对象。对象是JavaScript的核心特性,它是一组键值对的集合,可以包含数据(属性)和行为(方法)。方法实际上也是函数,但它们与对象关联,可以通过`this`关键字引用对象本身。以下是一个创建矩形对象的例子: ```javascript function Rectangle(w, h) { this.width = w; this.height = h; this.area = area; // 将方法赋值给对象属性 this.enlarge = Rectangle_enlarge; this.setSize = setSize; function Rectangle_enlarge() { this.width *= 2; this.height *= 2; } function setSize(width, height) { if (arguments.length < 2) { throw new Error("arguments less!"); } else if (arguments.length >= 2) { this.width = width; this.height = height; } } function area() { return (this.width * this.height); } // 不推荐的做法:area1方法没有与对象关联,不作为对象的方法 function area1() { alert(10); } } ``` 在JavaScript中,对象的继承是通过原型链实现的。每个对象都有一个原型(prototype),默认情况下,对象的原型是一个名为`__proto__`的属性,指向创建它的构造函数的`prototype`属性。原型对象可以存储共享的方法和属性,这样多个对象实例就可以共享这些资源,类似于C#中的静态字段。例如,如果我们有另一个形状类,我们可以让矩形继承自这个形状类,通过设置`Rectangle.prototype`为形状类的实例: ```javascript function Shape() {} Shape.prototype.calculateArea = function() {}; Rectangle.prototype = new Shape(); ``` 现在,每个矩形实例都拥有了`calculateArea`方法,尽管它们并没有直接定义它。这就是JavaScript的原型继承机制,它允许我们创建复杂的类层次结构,并有效地复用代码。 总结,JavaScript的函数、方法和对象是构建动态和交互式Web应用的基础。理解它们的工作原理,以及如何在实际项目中使用,对于成为一名熟练的JavaScript开发者至关重要。通过学习和实践,你可以创建出高效、可维护的代码,充分利用JavaScript的灵活性和强大性。