我在学习JavaScript的过程中this关键字费了我好多的精力,也走了不少弯路,参考了不少前人的文章,现在把this关键字的用法总结如下:
首先看下面这段代码:
function k (){
var length = 3;
return this.length;
}
alert(k());//输出0,并不是3。
我们要记住这一点:this永远指向调用它的对象。
而k()运行时this指向的是window,为什么,因为k只不过是window的一个属性,
如果运行
alert(window.k());//同样输出0,window的length属性默认为0或1;
如果这样呢:
var oLength = new Object;
oLength.length = 23;
oLength = k;
alert(oLength());
这样会输出多少?23?
此时还是会输出0,原因同上,oLength是window的一个属性,实际上为:
window.oLength = k;
this同样指向window;
如果这样
var oLength = new Object;
oLength.length = 23;
oLength.show = k;
alert(oLength.show());
这时输出为23,this指向oLength.
为什么这回不指向window了,因为show是oLength的一个属性,这个属性里的this必然指向它的对象oLength;
分享到:
相关推荐
2. **高级特性**:闭包、原型链、作用域、this关键字、函数表达式、箭头函数、模块化(CommonJS、ES6模块)、Promise、异步编程等。 3. **DOM操作**:通过JavaScript与HTML文档对象模型进行交互,包括元素选择、...
4. 对象:对象创建、属性访问、原型链、构造函数、this关键字。 5. 闭包:闭包的概念、作用、应用场景。 6. 异步处理:回调函数、Promise、async/await。 7. DOM操作:选择元素、修改元素、事件处理。 8. BOM处理:...
【北大青鸟 ACCP5.0 S2 JS 第二章】是北大青鸟教育机构针对JavaScript编程语言在ACCP5.0课程体系中第二阶段的学习内容。这一阶段主要聚焦于JavaScript的基础知识和进阶特性,旨在帮助学员深入理解和掌握这门重要的...
在JavaScript中,this关键字是导致许多问题的源头。纯函数不依赖于this,因此可以避免这类问题。 通过上述方法,可以有效地简化JavaScript代码,让代码更加符合函数式编程的原则。最终,开发者会发现,自己的代码...
第五章涉及声明和访问控制,涵盖了数组的使用、访问修饰符的作用,以及this关键字、构造器和方法的区别,这些都是编写Java程序时必不可少的知识。第六章提到了流程控制、异常处理和断言,这些都是编写复杂程序时不可...
- **思考4—引入this**:为了使函数更具可扩展性,引入了`this`关键字,以便更好地引用当前对象。 - **修改后的版本4**:通过将`this`绑定到函数上下文,使得验证函数能够更容易地被复用。 - **思考5—移除数字前面...
复杂的概念,例如“ this”关键字,高阶函数,闭包等。 如何使用流程图和通用模式来架构代码 练习50多项挑战和任务的技能 建立6个美丽的现实世界项目 项目的演示: 实时链接: 实时链接: 实时链接:
编写一个模拟JavaScript构造函数的工作方式,理解new关键字背后的过程,包括创建新对象、原型链继承等。 18. **递归** 递归是解决问题的一种常用技巧,理解递归原理,能够熟练运用递归解决树形结构、斐波那契数列...
`this`关键字在构造函数中引用的是新创建的对象。例如: ```javascript function Person(name, age) { this.name = name; this.age = age; } var zs = new Person("张三", 11); console.log(zs); ``` `new`...
还要学习作用域(全局和局部),闭包,以及this关键字的用法。 3. **对象与原型链**:JavaScript的面向对象特性,包括构造函数、原型、实例化、继承等。原型链是JavaScript实现继承的核心机制,需要深入了解。 4. ...
tips[16] = '在追求完美的路上,可能会思考太多,反而让双手闲着。'; tips[17] = '搜索引擎喜欢原创内容和结构合理的Html,而并非罗列出来的关键字。'; tips[18] = '不要小觑用户的智慧,他们能想出各种办法逃脱你...
在 "javascript-koans" 项目中,你将遇到一系列关于变量、数据类型、运算符、流程控制、函数、对象、数组、原型链、闭包、异步编程等主题的测试。每个测试都是一个待解决的错误,你需要通过修改代码来消除这些错误,...
3. **对象与原型**:深入学习对象的创建、属性操作、原型链、构造函数、this关键字的用法以及继承机制。 4. **数组方法**:掌握map、filter、reduce、forEach、find、findIndex、slice、splice等常用数组方法,以及...
**ES6标准入门详解** **一、ES6的概述** ES6,全称为ECMAScript 6,是JavaScript语言的第六个...通过学习,读者不仅能了解和掌握ES6的新语法,还能理解标准背后的思考和意义,从而在实际工作中更好地应用这些新技术。
4. this关键字:深入学习this的动态绑定,以及在不同上下文中(如函数、对象方法、构造函数)它的指向。 5. 回调函数:JavaScript中的异步编程基础,常用于事件处理和Ajax请求。 6. 高阶函数:函数作为参数传递和...
6. **this**:`this`关键字根据上下文的不同而改变,理解其在函数、方法、构造函数和箭头函数中的行为。 7. **异步编程**:包括回调函数、Promise、async/await,它们是处理非同步操作(如网络请求、定时任务)的...
在这个上下文中,`README.txt`可能会解释这些JavaScript代码的用途,例如每个示例的目标、如何运行它们、预期的结果,甚至可能包括一些关于代码设计和实现的思考。通过阅读这份文档,我们可以更好地理解詹志霜的代码...