面试题:this指针的指向,以及call、apply应用
2017-10-01 00:03
316 查看
var a = 2; function test(){ var a = 4; console.log(this.a); this.a = 1; } test();//2 //这里为什么是2?因为调用test()函数的是window,上述test()可以写成window.test(),test()内部的this指向的是window,而window中的a=2,所以console.log(this.a)打印出的是2 var h = new test();//undefined 声明一个变量h,new一个构造函数用h接住,那么test()的指针this指向的就是h,输出的this.a自然就是undefined console.log(h.a);//1 上述表达式是创建了一个构造函数,打印了this.a是undefined,注意:接着人家说:this.a=1,那么是的h这个对象的a=1,所有console.log(h.a)输出1咯 var k = {a:1000}; k.m = test; //将test(函数)变量赋值给k的m k.m();//1000 ,这里this指的就是k,所有输出的就是1000咯,注意后面this.a=1,改变了k对象中的a,从原来的1000变成了this.a=1; k.m.apply();//1 上述所说的this.a=1指的就是k.a=1,apply(),括号内未写this指向谁那么默认指向调用该函数的对象,所以,this指向调用该函数的对象m(m是k对象的一个函数),这个函数里面的this指向的还是k k.m.call(k);//1 this指向k,k.a=1
相关文章推荐
- js的this指针指向谁,以及相关的call、apply、bind方法
- JS中this的指向以及call、apply的作用
- 函数中的this指向,以及 修改this指向的 call/apply/bind方法
- C++编程指向成员的指针以及this指针的基本使用指南
- JS中的this指向问题以及apply、call、bind的使用
- c++ 指向 类成员函数(thiscall)的 函数指针
- 前端一道面试题,考察变量定义提升、this指针指向、运算符优先级、原型、继承、全局变量污染、对象属性及原型属性优先级
- JavaScript的this指针到底指向哪?
- 关于C语言中指针运算以及参数入栈顺序的面试题
- C++ 常成员函数和常对象以及this指针的重要理解
- 当this指针成为指向之类的基类指针时,也能形成多态
- 详解C++中的指针结构体数组以及指向结构体变量的指针
- call和apply的第一个参数是null/undefined时函数内的的this指向window或global
- javascript this 和 es6 箭头函数this 的理解以及call()、apply()、bind()的用法
- 关于javaScript变量、作用域链以及this指针的详解
- C++中this指针的作用以及用法详解
- this指针与function变量--this究竟指向哪里?
- 二维指针,二维数组,以及指向数组的指针的相关问题
- 关于this指针指向的知识回顾
- 面试题函数返回值 return 后的内容不能指向“栈内存”的“指针”和“引用”