新手怎么理解JavaScript中this指向,有哪些要点
Admin 2022-06-18 群英技术资讯 647 次浏览
老规矩先看代码:
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进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
这篇文章主要给大家分享jQuery链式调用的内容,下文有对jQuery链式调用的介绍以及实例,对新手学习和理解jQuery链式调用有一定的帮助,感兴趣的朋友就跟随小编来一起学习吧。
Vue3中有一对新增的api,provide和inject,熟悉Vue2的朋友应该明,这篇文章主要给大家介绍了关于vue3如何使用provide实现状态管理的相关资料,需要的朋友可以参考下
js不会保护hasOwnProperty被非法占用,如果一个对象碰巧存在这个属性, 就需要使用外部的hasOwnProperty 函数来获取正确的结果。当检查对象上某个属性是否存在时,hasOwnProperty 是唯一可用的方法。
基于element-plus的二次封装数据双向绑定在实际开发中,经常需要基于element-plus封装一些自己的定制化组件,方便快速构建我们当前的业务。在vue2.0中父子组件数据的双向绑定通
目录ant design vue的form表单取值官方中有以下两种取值方式ant design of vue 学习之表单formv-decorator(表单验证,内置绑定,初始值)数据获取与填充表单实例ant design vue的form表单取值官方中有以下两种取值方式因为不是很熟悉,所以还是查了文档找了一下使用方式
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008