JavaScript函数与对象:封装、属性和继承解析

0 下载量 107 浏览量 更新于2024-08-31 收藏 97KB PDF 举报
本文主要探讨了JavaScript中的函数、对象创建、封装、属性和方法以及继承的概念,通过实例展示了不同函数定义方式的区别,并提及了匿名函数和立即执行函数的用法。 在JavaScript中,函数是非常核心的组成部分,它可以作为变量、对象的属性或参数传递。函数的定义方式主要有两种:声明式(命名函数)和引用式(匿名函数)。声明式的函数如`function t1() {}`,其定义会被提前处理,因此在整个作用域内只存在一个`t1`函数。而引用式的函数如`var t1 = function() {}`,其赋值过程是在运行时完成的,可以多次赋值,每次赋值都会覆盖之前的定义。 文章中提到的一个例子揭示了声明式和引用式函数的区别。在声明式函数的重复定义中,由于JavaScript的提升机制(Hoisting),只有最后一次定义会被执行。而在引用式函数中,变量`t1`的值是可以被替换的,导致输出结果不同。此外,匿名函数的立即执行形式`(function() {})()`允许在定义的同时执行函数,而`var t1 = new function() {...}`则是创建了一个函数对象。 JavaScript中的对象创建通常有两种方式:构造函数和对象字面量。构造函数如`function Person(name) { this.name = name; }`,而对象字面量则是`var person = {name: 'John'};`。这两种方式都可以用来创建和初始化对象。对象的属性和方法可以通过`.`操作符访问,例如`person.name`和`person.sayHello = function() {...}`。 封装是面向对象编程的重要概念,它隐藏对象的内部实现细节,只暴露必要的接口供外部使用。在JavaScript中,通过创建闭包或者使用`var`在函数内部定义变量,可以实现类似私有成员的效果,如文章中的`t2`对象的`temp`变量。 继承是JavaScript实现多态性和代码复用的方式,通过原型链(Prototype Chain)来实现。每个对象都有一个`__proto__`属性,指向其构造函数的原型对象。通过修改`prototype`属性,可以实现方法的继承。例如,`Child.prototype = new Parent();`使得`Child`的对象能够访问`Parent`的属性和方法。 这篇文章深入浅出地介绍了JavaScript中的关键概念,包括函数的不同定义方式、对象创建、封装技术以及继承原理,对理解和掌握JavaScript的基础知识非常有帮助。