JavaScript 中 this的指向
this 一方面便利了让大家在JS开发当, 但是另一方面让开发者头痛的是不清楚this 指代什么.
指向全局Window:
<script>
console.log(this);
</script>
Function attached to global project. So "this" in the project will point to global project.
<script>
function calculateAge(year) {
console.log(2018 - year);
console.log(this);
}
</script>
在object的function中的innerFunction
一些开发者认为this 应该是指向object John, 因为还在John这个 object 的scope chain中.
JS Rules:
When a regular function code called, then the default object is the window object. This is how it happens in the browser.
InnerFunction is not a method, because the method is called calculateAge. Method of the John object.
InnerFunction although is written insdie of a method, it is still a regular function.
在网页中, 当一个普通的function 代码被call时, default object 是 window object.
InnerFunction 这样嵌套在method(John object里面的calculate function), 这样写在method里面的function, 是一个普通的function 而不是method, 所以this 指向全局window.
<script>
var john = {
name: 'John',
yearOfBirth: 1990,
calculateAge: function () {
console.log(this);
console.log(john.yearOfBirth); function innerFunction() {
console.log(this);
} innerFunction();
}
} john.calculateAge();
</script>
指向scope chain(作用域):
calculateAge 的function的"this"会指向当前scope chain作用域(john object)
this object refers to the object than called the method.
<script>
var john = {
name: 'John',
yearOfBirth: 1990,
calculateAge: function() {
console.log (this);
}
} john.calculateAge();
</script>
更多this 原理:
http://www.ruanyifeng.com/blog/2018/06/javascript-this.html
JavaScript 中 this的指向的更多相关文章
- javascript中this的指向
		
作为一个前端小白在开发中对于this的指向问题有时候总是会模糊,于是花时间研究了一番. 首先this是JS的关键字,this是js函数在运行是生成的一个内部对象,生成的这个this只能在函数内部使用. ...
 - Javascript中的this指向。
		
一.JavaScript中的函数 在了解this指向之前,要先弄明白函数执行时它的执行环境是如何创建的,这样可以更清楚的去理解JavaScript中的this指向. function fn(x,y,n ...
 - JavaScript中 this 的指向
		
很多人都会被JavaScript中this的指向(也就是函数在调用时的调用上下文)弄晕,这里做一下总结: 首先,顶层的this指向全局对象. 函数中的this按照调用方法的不同,其指向也不同: 1.函 ...
 - 前端面试之JavaScript中this的指向【待完善!】
		
JavaScript中this的指向问题! 另一个特殊的对象是 this,它在标准函数和箭头函数中有不同的行为. 在标准函数中, this 引用的是把函数当成方法调用的上下文对象,这时候通常称其为 t ...
 - JavaScript中的this指向
		
this是谁 技术一般水平有限,有什么错的地方,望大家指正. this代指当前对象super调用父类的构造函数,应表会运网数物,加载驱动建立链接执行SQL处理结果,直到现在每想起这三点就能想起我上大学 ...
 - Javascript 中的this 指向的对象,你搞清楚了吗?
		
Javascript 中的this 总让人感到困惑,你能分清以下三种test1(),test2(),test3() 情况下的输出吗? 注:以下Javascript运行环境中为浏览器 //1 this在 ...
 - javascript中的this指向问题
		
在深入学习JavaScript之后,我们越来越多的会遇到函数或者在对象内部中,对于this的指向问题的疑惑,其实基本上每一个编程语言中都有一个this,这个this的指向都是大同小异,你也可以汉化它的 ...
 - 谈谈 JavaScript 中的 this 指向问题
		
JavaScript 中的 this 为一个重难点,它不像静态语言 C#.Java 一样,就表示当前对象.而在 JS 中, this 是运行时确定,而并非定义时就已确定其值. 谈起 this ,必须少 ...
 - JavaScript中this的指向问题
		
this是面向对象语言中一个重要的关键字,理解并掌握该关键字的使用对于我们代码的健壮性及优美性至关重要.而javascript的this又有区别于Java.C#等纯面向对象的语言,这使得this更加扑 ...
 - 轻松几句搞定【Javascript中的this指向】问题
		
this关键字在JavaScript中扮演了至关重要的角色,每次它的出现都伴随着它的指向问题,这也是很多初学者容易出错的地方. 不过,这篇文章将会带你一次性搞定this指向的问题,望能给大家提供帮助! ...
 
随机推荐
- CSS颜色
			
CSS 颜色 可以用以下方法来规定 CSS 中的颜色: · 十六进制色 十六进制值使用三个双位数来编写,并以 # 符号开头. · RGB 颜色 o 所有浏览器都支持 R ...
 - 201621123001 《Java程序设计》第11周学习总结
			
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多线程相关内容. 一个进程可以同时运行多个不同线程,不同的线程执行不同的任务 Java线程是通过java.lang包中定义的Thre ...
 - 循环神经网络-Dropout
			
dropout 是 regularization 方法,在rnn中使用方法不同于cnn 对于rnn的部分不进行dropout,也就是说从t-1时候的状态传递到t时刻进行计算时,这个中间不进行memor ...
 - L325  如何睡觉
			
Getting enough shut-eye is one of life’s biggest challenges. It’s recommended that the average perso ...
 - Word2Vec实现原理(Hierarchical Softmax)
			
由于word2vec有两种改进方法,一种是基于Hierarchical Softmax的,另一种是基于Negative Sampling的.本文关注于基于Hierarchical Softmax的改进 ...
 - nodejs  .http模块, cheerio模块 实现 小爬虫.
			
代码: var http = require("http"); var cheerio = require("cheerio"); var url = 'htt ...
 - ios表单验证帮助类
			
// // ValidateHelper.h // #import <Foundation/Foundation.h> @interface ValidateHelper : NSObje ...
 - display_errors","On");和error_reporting  区别和联系
			
ini_set("display_errors","On");和error_reporting(E_ALL); 在用php做网站开发的时候 , 为防止用户看 ...
 - python基础举例应用
			
将下述两个变量的值交换s1='alex's2='SB's1,s2=s2,s1print(s1,s2) 判断下述结果msg1='alex say my name is alex,my age is 73 ...
 - Kaggle(2):验证和过分拟合
			
目前看来,随机森林是比较常用且有效的分类算法.以下先简要介绍python中随机森林的使用方法,然后谈谈分类结果的准确度验证和过拟合等两个重要问题. 1.随机森林的参数 在Scikit learn中使用 ...