新手怎么理解JavaScript中this指向,有哪些要点
Admin 2022-06-18 群英技术资讯 584 次浏览
老规矩先看代码:
function test(){ console.log(this); }
function test(){ console.log(this); }
在方法中,this表示该方法所属的对象。因为第一个是window上的方法,所以打印了window,而eat方法是Person方法,所以打印除了对象Person。
所以可以看出单独在控制台使用this, 表示全局对象。
在对象,可以提前声明一个一个:
var Person1={ name:"张三", age:18 } var Person2={ name:"李四", age:19 }
这样写会很麻烦,所以可以借鉴一下java类的概念,可以这样:
var Person=function(name,age){ this.name=name, this.age=age } var Person1=new Person("张三",18); var Person2=new Person("李四",19);
其实在new的时候隐藏了一个return this,如果不使用new的话,发现其没有返回这个新建的对象。
那么现在补全一下看:
var Person=function(name,age){ this.name=name, this.age=age return this; } var Person1=new Person("张三",18); var Person2=new Person("李四",19);
这样的话,甚至可以伪造一个this的效果:
var Person=function(name,age){ var that={}; that.name=name, that.age=age return that; } var Person1=new Person("张三",18); var Person2=new Person("李四",19);
this在严格模式和非严格模式下有些神奇的情况
function test() { return this; } # 如果js前面添加"use strict" 代表是严格模式 "use strict"; function test() { return this; }
这个可以看出在非严格模式下函数中,函数的所属者默认绑定到 this 上。所以可以打印出全局,但是严格模式下函数是没有绑定到 this 上,这时候 this 是 undefined。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
目录自定义组件@click点击失效问题描述原因分析问题解决@click不起作用,同时报错自定义组件@click点击失效问题描述自定义组件在使无法,无法绑定原vue文件内的原生click事件原因分析根据查询vue官方文档,得知click事件作用于组件内部,如果组件内没有写click事件,便会无响应。问题解决1.参照官方文
我们平常在浏览一些网站的时候,经常能看到选项卡展示功能,其好处就是节约页面空间,我们只要点击不同的区域,就能展现不同的内容,这样能比较合理的展示内容。那么JS是怎样实现选项卡插件的呢?
jQuery如何停止函数执行,用什么语句?终止某个函数执行是很常见的需求,jQuery中我们可以使用函数来实现,下面我们具体的来看看是怎样做的,希望对大家学习jQuery的使用有帮助。
js原生map实现的方法总结,一些朋友可能会遇到这方面的问题,对此在下文小编向大家来讲解一下,内容详细,易于理解,希望大家阅读完这篇能有收获哦,有需要的朋友就往下看吧!
本文实例为大家分享了js实现文字无缝轮播的具体代码,供大家参考,具体内容如下,所用到的知识点:innerHTML 获取或设置某个对象的内容scrollTop 滚动条滚动的距离,此属性是系统内置定义好的offsetHeight 获取或设置对象的高度setInterv...
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008