首先讲讲为什么会有闭包和原型。
Javascript的最初就是一款脚本语言(名字中带scrip就足以说明这一点),用来开发网页,所以语法简洁,没有面向对象语言的概念(多态,继承,封装。。。),甚至没有线程。
为了实现多态,继承和封装,我们看看js是如何实现这些OOP特性的。
- 封装
封装的概念非常简单,就是将用户不需要知道的数据和方法隐藏起来,外部无法直接访问。在Java中,可以用private, protected关键字进行修饰。在JS中可以用闭包实现。来看一个例子:
var person = {
fullName : "Jason Shapiro",
};
alert(person.fullName); // Jason Shapiro
person.fullName = "Jim White";
alert(person.fullName); // Jim White
//不小心将邮箱赋给fullName
person.fullName = Jason_Shapiro@gmail.com;
alert(person.fullName); // Jason_Shapiro@gmail.com
这里person对象的fullName属性是暴露给用户的,你无法保证用户总是赋合法的名字。
为了解决这一问题,我们可以用闭包。在此之前,我们先开看看函数的作用域ÿ

本文探讨JavaScript中的闭包和原型概念,以实现封装和继承。闭包提供了一种隐藏变量和实现私有方法的方式,而原型则用于对象间的属性和方法共享,构成原型链。通过理解这两者,可以更好地掌握JavaScript的面向对象特性。
最低0.47元/天 解锁文章
2360

被折叠的 条评论
为什么被折叠?



