2015.12.08 HTML5真题练习

HTML5学堂:每天一道题,强壮程序员!今日主要涉及12.07题目(作用域、this指向)的解答,以及一道涉及原型、原型链相关知识的题目。

HTML5真题【2015.12.07】答案解析

12.07真题题目如下,最终输出的结果是多少?

<script>
var innerHTML = 'h5course';
window.onload = function() {
var innerHTML = 'HTML5学堂';
var obj = {
innerHTML: 'H5学堂',
fn: function() {
  console.log(this.innerHTML);
}
}
obj.fn();
var peo1 = obj;
peo1.fn();
var peo2 = obj.fn;
peo2();
}
</script>

本题目的答案是:H5学堂,H5学堂,HTML5学堂。

本题目主要考察如下知识点:this的基本指向。

解释一下代码:在定义时,fn是obj的方法,也就是obj.fn = function(){console.log(this.innerHTML)}。this指向函数的所有者,此时fn是这个函数,函数的所有者自然就是obj了。因此,第一个obj.fn()相当于是打印obj.innerHTML,答案是“H5学堂”。之后,将obj赋值给peo1,其实我们可以认为是将obj的地址赋值给了peo1,更简单的来说,就是让peo1和obj指向了同一个空间,此时使用peo1进行fn方法的调用是等价于obj.fn()的,因此答案也是“H5学堂”。

peo2部分,明显发生了变化,不再是将obj赋值给peo2,而是将obj的fn方法赋值给了peo2。此时可以直接简单的理解为 var peo2 = function() {console.log(this.innerHTML)},此时,peo2成为了一个“方法/功能”,而peo2的所有者是window,因此this指向window,此时this.innerHTML自然就是'HTML5学堂'了。

相关知识:本题目主要涉及this指向

HTML5真题【2015.12.08】题目

<script>
function Fun(a, b) {
this.a = a;
this.b = b;
var c = 3;
}


Fun.prototype.sum = function() {
return this.a + this.b;
}


var fun = new Fun(1, 2);
console.log(fun.c);
console.log(fun.hasOwnProperty("sum"));
</script>

关于每日代码练习题的答案和解析,我们会在明日文章当中,发布相关答案以及基本原理。(PS:周六日不发布题目)

原文发布于微信公众号 - HTML5学堂(h5course-com)

原文发表时间:2015-12-10

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Coding迪斯尼

VUE+WebPack前端游戏设计:实现外星人的动态下滑特效

862
来自专栏淡定的博客

css3之LESS简单入门

721
来自专栏web前端教室

[先行者周末课程] 日历组件的开发思路讲解&&日历组件在实际工作中的使用方式

各位同学们大家好,今天又到了周日,视频课程的时候。上次咱们讲的是日历组件。 简短的回顾一下上周的内容,免得同学们一时断篇,想不起来身在何方。日历这种东西,初学者...

17810
来自专栏葡萄城控件技术团队

AngularJS:如何使用自定义指令来取代ng-repeat

引言 本文主要介绍了另一种即具有与ng-repeat 一样处理大量数据的绑定的功能,又具有超高的性能。 对于处理小数量,ng-repeat是非常有用的,但是如果...

1987
来自专栏偏前端工程师的驿站

Design Pattern: Not Just Mixin Pattern

Brief                                 从Mix-In模式到Mixin模式,中文常用翻译为“混入/织入模式”。单纯从名字上看...

1816
来自专栏菩提树下的杨过

Reactor 3 学习笔记(1)

Reactor 3 与之前学习的RxJava是同一类(反应式编程)框架,基本概念大致差不多,简单记录一下:

722
来自专栏一个会写诗的程序员的博客

禅与 JavaScript 编程艺术, Zen and The Art of JavaScript Programming禅与 JavaScript 编程艺术

Zen and The Art of JavaScript Programming

351
来自专栏圣杰的专栏

事件总线知多少(1)

源码路径:Github-EventBus 事件总线知多少(1) 事件总线知多少(2) 1. 引言 事件总线这个概念对你来说可能很陌生,但提到观察者(发布...

2277
来自专栏前端新视界

CSS 预处理器中的循环

本文由 nzbin 翻译,黄利民 校稿。未经许可,禁止转载! 英文出处:Loops in CSS Preprocessors 发表地址:http://we...

1886
来自专栏技术小黑屋

记一场 Android 技术答疑

之前在Stuq的Android课程中有幸分享了一些关于优化的问题,后期又处理了一些来自网友的问题,这里简单以文字形式做个整理.

652

扫描关注云+社区