摘要:如果没有当前方法或该方法不属于任何其它对象,则是指全局对象。正是这种情况如果我们有许多全局变量那么多于代码的维护和复用将非常的困难。如里面提到的闭包,使用闭包来进行信息的隐藏也能达到减少全局变量的污染。
this是学习每门语言的必备,this理解为当前上下文,它代表函数运行时,自动生成的一个内部对象,只能在函数内部使用。如果没有当前方法(或该方法不属于任何其它对象),则是指全局对象。也就是说,this代表调用该方法对象的引用。正是这种情况如果我们有许多全局变量那么多于代码的维护和复用将非常的困难。 this的理解:
var name="this_aside"; console.log(this.name); function fn(){ this.name="this_fun"; console.log(this.name); } fn();
此时的输出:
var name="this_aside"; function fn(){ this.name="this_fun"; console.log(this.name); } fn(); console.log(this.name);
此时的输出:
var name="this_aside"; var obj={ name:"this_obj", showName:function(){ console.log(this.name); } }; function fn2(){ this.name="this_fn2"; } obj.showName(); obj.showName.apply(this); obj.showName.apply(fn2);
第一个showName()的上下文为obj,而使用apply此时传入的this代表的则是对象,输出的fn2即为对象名:
var name="this_aside"; function fn(){ this.name="this_fun"; this.showName = function () { console.log(this.name); } } var value = new fn(); value.showName(); console.log(this.name);
通过与java中类似的构造来实现方法的调用,此时构造的this为fn()对象,在fn中这种结构也被称为闭包,输出结果:
在开发的应用中只使用一个全局变量
例如:
这时的FIRSTAPP就成为了我们网页或者应用的一个基本容器。
如this里面提到的闭包,使用闭包来进行信息的隐藏也能达到减少全局变量的污染。
这是本次一个月的js学习分享,望有更多人提意见共同成长。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/89651.html
摘要:到底什么是闭包这个问题在面试是时候经常都会被问,很多小白一听就懵逼了,不知道如何回答好。上面这么说闭包是一种特殊的对象。闭包的注意事项通常,函数的作用域及其所有变量都会在函数执行结束后被销毁。从而使用闭包模块化代码,减少全局变量的污染。 闭包,有人说它是一种设计理念,有人说所有的函数都是闭包。到底什么是闭包?这个问题在面试是时候经常都会被问,很多小白一听就懵逼了,不知道如何回答好。这个...
摘要:一般来讲,函数执行完毕后,局部活动对象就会被销毁,内存中仅保存全局作用域,但是闭包的情况有所不同理解闭包的前提先理解另外两个内容作用域链垃圾回收作用域链当代码在执行过程中,会创建变量对象的一个作用域链。 闭包是javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包来实现。个人的理解是:函数中嵌套函数。 闭包的定义及其优缺点 闭包是指有权访问另一个函数作用域中的变量的...
摘要:全局的函数第个对象第个对象作为构造器进行调用也就是利用运算符进行调用。与操作的共同使用只有通过操作产生的对象,可以使用构造器函数原型链上的内容,否则对象只能使用自己原型链上的内容。 今天这个话题是因为这几天看了《JavaScript忍者秘籍》,感觉这本书把这几个内容讲的蛮透彻了,特撰本文,以便日后翻阅。(应该都会以知识点的形式给出吧。) 函数 1.【基本类型】 JavaScript中函...
阅读 2630·2021-10-12 10:12
阅读 2219·2021-09-02 15:41
阅读 2492·2019-08-30 15:55
阅读 1333·2019-08-30 13:05
阅读 2369·2019-08-29 11:21
阅读 3465·2019-08-28 17:53
阅读 3003·2019-08-26 13:39
阅读 739·2019-08-26 11:50