JS --- this(4)
1.在一般函数方法中使用 this 指代全局对象
function test(){this.x = 1;alert(this.x);}test(); // 1
2.作为对象方法调用,this 指代上级对象
function test(){alert(this.x);
}
var o = {};
o.x = 1;
o.m = test;
o.m(); // 1
3.作为构造函数调用,this 指代new 出的对象
function test(){this.x = 1;}var o = new test();alert(o.x); // 1//运行结果为1。为了表明这时this不是全局对象,我对代码做一些改变:var x = 2;function test(){this.x = 1;}var o = new test();alert(x); //2
4.apply 调用 ,apply方法作用是改变函数的调用对象,此方法的第一个参数为改变后调用这个函数的对象,this指代第一个参数
var x = 0;function test(){alert(this.x);}var o={};o.x = 1;o.m = test;o.m.apply(); //0
//apply()的参数为空时,默认调用全局对象。因此,这时的运行结果为0,证明this指的是全局对象。如果把最后一行代码修改为o.m.apply(o); //1
转载于:https://www.cnblogs.com/flower46273736/p/6424772.html
JS --- this(4)相关推荐
- 在js中使用HashMap数据结构,在js中使用K,V数据结构
首先是定义一个HashMap方法,做基类(复制在js中即可,然后引用) //简单的哈希表,begin function HashMap() {/** Map 大小 * */var size = 0;/ ...
- js校验复选框(多选按钮)是否被选中的方法
js校验复选框是否被选中的方法 方法一:(使用下标进行标记) if ($("#checkbox-id")get(0).checked) {// do something } 方法二 ...
- form表单提交前进行ajax或js验证,校验不通过不提交
在使用form表单进行提交数据前,需要进行数据的校验->表单的校验(如:两次密码输入是否相同)+后台数据的校验(如:账号是否存在),这个时候,如果哪步校验不通过,表单将停止提交,同时避免后台主键 ...
- 终止js程序执行的方法
js终止程序执行的方法共有三种 (一)在function里面(普通js方法) (1)return; (2)return false; (二)非function方法里面(如ajax方法) alert(& ...
- JS Uncaught SyntaxError:Unexpected identifier异常报错原因及其解决方法
最近在写ajax的时候,调用js方法,遇到了Uncaught SyntaxError:Unexpected identifier异常报错,开始搞不清原因,很苦恼. 以为是js方法参数个数和长度的问题, ...
- 用js方法做提交表单的校验
基础知识: 原始提交如下: <form action="<%=basePath %>puser/register" method="post" ...
- 【JavaScript总结】JavaScript语法基础:JS高级语法
作用域链: 1.JS中只有函数能够限定作用域的范围: 2.变量处理在制定的函数范围内,还有一个特殊的作用域,就是没有用var 声明的全局作用域 3.js中的作用域链是为了清晰的表示出所有变量的作用范围 ...
- 【JavaScript总结】JavaScript语法基础:JS编码
运算符 数学:+. -. *. / 逻辑:>. < .>= .<=. == . !=.&&.|| . === .!==(完全等于) 对象相关 new delet ...
- js获取html代码中所有图片地址
/** * JS获取html代码中所有的图片地址 * @param htmlstr * @returns imgsrcArr 数组 */ function getimgsrc(htmlstr) { v ...
- Node.js 简单入门
目录 一. 什么是Nodejs 二. Nodejs组成图(对比jdk) 三. Nodejs的安装 四. 第一个Nodejs程序 五. Node实现请求响应 六. Node操作MYSQL数据库 1. 安 ...
最新文章
- 复合的赋值运算符例题_Java千问:关于Java语言复合赋值运算符的两个问题,快来瞧瞧!...
- 开源项目中成长:从实习小白到核心开发者
- linux shell date 日期格式转换
- C++中public,protected,private访问范围和用法
- 斐波那契数列算法(C#)
- STM32之option bytes踩坑记录
- avogadro_Avogadro
- Android之RecyclerView 实现真正的Gallery效果
- ida调试linux程序,MAC使用IDA PRO远程调试LINUX程序
- 您能解决这3个(看似)简单的Python问题吗?
- 数据库、C#、Java生成唯一GUID 方法
- 【opencv】错误提示OpenCV Error: Assertion failed
- 音频格式处理--SOX
- win设置右键快捷打开软件
- 用20门编程语言说生日快乐/我爱你
- 用记事本编写小游戏_一款适合你的记事本——提高你工作的效率!
- javaWeb开发的放推特项目之推特发布
- 制作移动硬盘或U盘的MAC安装盘
- adb logcat 命令
- layui复选框,设置部分可选