js 中this到底指向哪里?】的更多相关文章

其实js的this指向很简单.我们记住下面3种情况. this 指向的是浏览器中的window.代码如下: function fn(){ this.name='yangkun'; this.age=28; } 当我们执行fn()的时候,这个普通函数中的this指向到底是什么?答案就是指向的是浏览器中的window.(这里说明,这里实在浏览器下,如果是node环境不是). 如果这个时候我们对上面的函数进行进一步操作: function fn(){ this.name='yangkun'; this…
关于this的指向,是一个令人很头疼的问题.但是,你运气好,碰到了我.老夫这儿有本祖传秘籍,看懂这个,妈妈再也不用担心你的this指向不对啦! 归根结底,this指向就一句话:谁最终调用函数,this指向谁!!! 关于这点,老夫有三言相赠: ① this指向的,永远只可能是对象!       ② this指向谁,永远不取决于this写在哪!而是取决于函数在哪调用.       ③ this指向的对象,我们称之为函数的上下文context,也叫函数的调用者. 下面,请看具体情况. ① 通过函数名(…
outline prototype 与 __proto__ function 与 object new 到底发生了什么 prototype 与 __proto__ 首先说下在JS中比较容易让人困惑的 prototype 和 __proto__ __proto__ 就是JavaScript中所谓的原型. 一个对象的 __proto__ 属性和自己的内部属性[[Prototype]]指向一个相同的值 (通常称这个值为原型),原型的值可以是一个对象值也可以是null(比如说Object.prototy…
     学习自原文  http://www.cnblogs.com/pssp/p/5216085.html后的一点小结(原文作者总结的很棒^_^)! 关于js中this的指向,在函数定义的时候还无法确定,只有在函数执行的时候才能确定this到底指向谁,实际上this最终指向的是调用它的对象. eg1: function a(){     var user = "xxxx";     console.log(this.user); //undefined     console.log…
在js中this的指向对于新手来说一定是个难题,但是如果你真正理解了的话,也就没什么问题啦,下面就来讲讲this吧. JS中,this的值取决于调用的模式(调用对象),而JS中共有4种调用模式: 1.函数调用模式 当一个函数不是一个对象的属性时,当作函数俩调用,这时函数内的this指向全局对象(大对数情况下是window) window.value=1; function getValue(){ console.log(this.value); } getValue();//输出1,此时的thi…
我发现在对JS的学习中有很多朋友对this的指向问题还是有很大的误区或者说只是大致了解,但是一旦遇到复杂的情况就会因为this指向问题而引发各种bug. 对于之前学习过c或者是Java的朋友来说可能这个问题还比较好解决,因为c中指针的指向和Java中类的跳转其实和JS中this的指向有异曲同工之妙. 在这里简单给大家稍微举几个例子  希望对大家有所帮助. JS中this的指向不同于其他语言,JS中的this不是指向定义他的位置,而是在哪调用它它就指向哪里. JS中,普通的函数调用方式有三种:直接…
JS中的this指向一直是个让人头疼的问题,想当初我学的是天昏地暗,查了好多资料,看的头都大了,跟他大战了那么多回合,终于把它搞定个七八分,其实往往都是我们复杂化了,现在就让大家轻松看懂this的指向,我会分以下几种情况来说. this的指向:  1 this 指的是直接调用当前方法(函数)的那个对象,也就是说函数在谁那被调用,this就指的是谁.   来看两个栗子: oBtn.onclick = function(){ alert(this); //oBtn } oBtn.onclick =…
前言: 由于js 中this的指向受函数运行环境的影响,指向经常改变,使得开发变得困难和模糊,所以在封装sdk,写一些复杂函数的时候经常会用到this 指向绑定,以避免出现不必要的问题,call.apply.bind基本都能实现这一功能,现对这三种方法使用总结一下: 1.function.prototype.call() call 方法可以指定this 的指向(即函数执行时所在的的作用域),然后再指定的作用域中,执行函数 call 方法的参数,应该是对象obj,如果参数为空或null,undef…
js中 this的指向一共存在3种地方: 1.全局的this; 2.构造函数的this; 3.call/apply; 一.全局的this: function test(){ this.d = 3;//函数的默认指向是window var a = 1; function c(){ } } test(123); console.log(window.d); console.log(this.d);//this 默认指向window 这里有两个点:函数的默认指向是window:全局this 指向 wi…
刚刚学习js的朋友可能和我一样,看到代码中的this总是一脸懵逼,不知道this到底指向谁.经过一段时间的了解,我想跟大家分享下自己的理解. 何时出现this 函数在调用的时候,会自动获得两个特殊变量:this和arguments,所以,函数可以调用this变量. this指向谁? 通过一段时间的练习,我觉得可以总结为一句话:this指向他所在函数的作用域对象.如果函数是定义在全局作用域的,那么this指向window,如果函数被某个自定义对象调用,那么this就指向该对象.下面我们通过几个场景…