5 楼:{ var tmp = 2 } JS 中语句块不能独立作用域,这样写等同于声明了一个全局变量 tmp = 2,所以不存在该语句块内代码执行完毕后 tmp 就被销毁的情况。

6 楼:

变量 add,以及 add 的 count 属性、plus() 方法都是公共的,这意味着其他代码可以直接修改你的 count 属性,造成不必要的麻烦。

闭包要解决的问题是:一个函数可以拥有私有变量,并且外部可以通过闭包访问该私有变量,如特权方法(类似 JavaBean 的写法)。

针对以上言论,需要反驳一下。

6 楼:变量 add,以及 add 的 count 属性、plus() 方法都是公共的,这意味着其他代码可以直接修改你的 count 属性,造成不必要的麻烦。

这句话,本身就存在问题,6楼是使用new构造了一个object,并且再对object的属性和方法进行赋值,后面直接onclick 调object.method()就行了,所谓的方法都是公开的,这个的确,但是要知道纵使是公开的,也必须使用这个对象访问或者修改才行,而不是所谓的直接可以修改。

var count;

var myObj=new Object;

myObj.count=2; //这里的myObj.count与上面声明的count可不是一个东西。

另外:

<script>

function Student(value) {

    var name = value;

    this.getName = function() { return name; };

    this.setName = function(value) {name = value; };

}

<script>

以上代码,难道不觉得很像是在声明一个对象?并且为了使用所谓的 function 的闭包,还非得使用下 this 关键词,到最后还需要使用 new 构造下 Student,并且为了保证能对该函数的私有变量 name 赋值,还搞了个函数的变量传过去,用起来真的是非常别扭,并且,这个方法好像在全局也都可以通过 Student 来访问吧?

<script>

function Student(value) {

    var name = value;

    this.getName = function() { return name; };

    this.setName = function(value) {name = value; };

}

myStu=new Student("name");

//我是不是可以在script内任意一个地方通过myStu.setName("name")来修改name值?

<script>

所以,其实核心的需求就是,我可以搞一个局部的变量,并且这个变量的生命周期还必须是类全局性质的,但又需要与全局变量区分开,那就直接用对象咯,声明一个对象,再定义下这个对象的某个属性值,那这个属性值变量本来就必须通过这个对象来访问,也即已经达到了将这个变量限制在这个对象的范围内。

这个时候,又何必多次一举,非得使用所谓的闭包,更何况,你不觉得如果把一个函数定义为一个对象的方法,本身就已经是一种闭包了吗?为啥还非得用 function 达到?

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

热门产品

php编程基础教程.pptx|php编程培训,php,编程,基础,教程,pptx
php编程基础教程.pptx

历史上的今天:04月28日

referrer策略和meta标签的问题

referrer策略和meta标签的问题请求后端接口时,banner图片的请求出现403错误:GEThttp://xxxxxxxxxxxx403(Forbidden)。在网上搜寻一番,解决方法如下:在index.html中的head中添加&lt;meta name=&quot;referrer&quot; content=&quot;no-referrer&quot; /&gt;。在此之前,关于r

热门专题

安徽中源管业有限公司|安徽中源管业有限公司,安徽中源管业有限公司介绍,安徽中源管业有限公司电话,安徽中源管业有限公司地址,安徽中源管业有限公司厂家,安徽中源管业有限公司电力管,安徽中源管业有限公司管材
安徽中源管业有限公司
国家开放大学|国家开放大学报名,国家开放大学报考,国家开放大学,什么是国家开放大学,国家开放大学学历,国家开放大学学费,国家开放大学报名条件,国家开放大学报名时间,国家开放大学学历,国家开放大学专业
国家开放大学
外贸网站建设|外贸网站建设,英文网站制作,英文网站设计,美国主机空间,外贸建站平台,多语言网站制作
外贸网站建设
大理科技管理学校|大理科技管理中等职业技术学校,大理市科技管理中等职业技术学校
大理科技管理学校
APP开发|app开发_app开发公司_app软件开发_专业app开发_云南app开发公司_app定制_原生app开发定制
APP开发
云南综合高中|云南综合高中
云南综合高中
中源管业|中源管业,中源管业公司,中源管业有限公司,中源管业电话,中源管业地址,中源管业电力管,中源管业mpp电力管,中源管业cpvc电力管,中源管业pe穿线管
中源管业
云南网站建设|云南网站制作,网站建设,云南网站开发,云南网站设计,云南网页设计,云南网站建设公司,云南网站建设
云南网站建设

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部