通过一段代码简单说js中的this的使用
2023-06-13 09:15:03 时间
今天有朋友说遇到如下代码,让我帮解释原因
复制代码代码如下:
varname="TheWindow";
varobject={
name:"MyObject",
getNameFunc:function(){
returnfunction(){
returnthis.name;
};
}
};
alert(object.getNameFunc()());原因是js的this是动态决定的,和你调用方式有直接关系。
简单说如果你调用一个函数的时候使用“对象.函数名”的方式,那么this就是这个.(点)之前的对象,否则是window。
比如你在调用object.getNameFunc()的时候getNameFunc函数体中的this是刚声明的object。如果你写成
varfunc=object.getNameFunc;
func();
这时候getNameFunc函数体中的this是window,虽然是同一函数调用方式的不同决定了this的不同。
同样的道理,object.getNameFunc()返回的是一个函数引用,加一个括号就是让函数执行。其实相当于如下代码
varfunc=object.getNameFunc();
alert(func());
函数前没有“对象.”这种形式,所以执行函数时候this是window,结果就很明显了。
以后我会写一篇关于jsthis的文章,欢迎大家关注我的CSDN博客tt361。
相关文章
- 怎么防止同事用Evil.js的代码投毒
- 200行Html5+CSS3+JS代码实现动态圣诞树
- JS跳转代码_js中跳转页面路径
- php 中js跳转页面跳转页面,js跳转代码_PHP页面跳转 Js页面跳转代码[通俗易懂]
- 如何使用JSubFinder从网页JS代码中寻找到敏感信息
- js文件格式校验详解编程语言
- JS拖拽效果详解编程语言
- 使用JS技术实现Oracle数据库链接(js 链接 oracle)
- 一个符号插入器中用到的js代码
- js弹簧效果代码
- js取得参数代码
- 用js删除tbody的代码
- TextBox的宽度随输入的文本的大小而改变的js代码
- JS判断undefined的实现代码
- javascriptgetElementsByClassName和js取地址栏参数
- js手机号码合法性验证代码集合
- 关于div自适应高度/左右高度自适应一致的js代码
- JS获取浏览器版本及名称实现函数
- 使用js在页面中绘制表格核心代码
- JS简单实现文件上传实例代码(无需插件)
- js判断IE浏览器版本过低示例代码
- js实现弹窗插件功能实例代码分享
- JS数组去重与取重的示例代码
- 使用JS或jQuery模拟鼠标点击a标签事件代码
- 使用node.js获取客户端信息代码分享
- node.js中的fs.symlinkSync方法使用说明
- 防止登录页面出现在frame中js代码