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 条评论
登录 后参与评论

相关文章

来自专栏小狼的世界

CSS3的过渡效果

在CSS2的世界中,过渡常常是非常单薄的,要么是从一种颜色变成另一种颜色、要么是从不透明变到透明,总而言之就是由一种状态变到另外一种状态。这就导致了很多页面给人...

893
来自专栏企鹅号快讯

给初学者:JavaScript 的常见注意点

作者: CarterLi 原文:https://segmentfault.com/a/1190000012730162 上篇说了一些 JS 中数组操作的常见误区...

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

CSS魔法堂:display:none与visibility:hidden的恩怨情仇

 还记得面试时被问起"请说说display:none和visibility:hidden的区别"吗?是不是回答完display:none不占用原来的位置,而vi...

963
来自专栏HTML5学堂

CSS3过渡,不再为JS动画而犯愁

HTML5学堂:在页面开发中经常会借助JS来书写大量的特效,以获得较好的页面感官效果。但是真正到了使用JS来操作的时候,往往会因为思维逻辑不清晰而显得很凌乱。同...

3149
来自专栏老马说编程

(28) 剖析包装类 (下) / 计算机程序的思维逻辑

本节探讨Character类,它的基本用法我们在包装类第一节已经介绍了,本节不再赘述。Character类除了封装了一个char外,还有什么可介绍的呢?它有很多...

1867
来自专栏C/C++基础

C++编码格式建议

每个人都可能有自己的代码风格和格式,但如果一个项目中的所有人都遵循同一风格的话,这个项目就能更顺利地进行。每个人未必能同意下述的每一处格式规则,而且其中的不少规...

622
来自专栏Java帮帮-微信公众号-技术文章全总结

JavaWeb15-DBUtils(Java真正的全栈开发)

? DBUtils 一.DBUtils 1. DButils的介绍 dbutils的介绍及其作用 DBUtils是java编程中的数据库操作实用工具,小巧简单...

2055
来自专栏老司机的技术博客

高质量jQuery代码的十二条经验

1、正确引用jQuery 尽量在body结束前才引入jQuery,而不是在head中。 借助第三方提供的CDN来引入jQuery,同时注意当使用第三方CDN出现...

2804
来自专栏Phoenix的Android之旅

Java-注解入门指南

如果你是个Java开发者,一定用过,至少听说过注解。 注解是Java的一种手段,它的官方定义是

722
来自专栏微信公众号:Java团长

框架开发之Java注解的妙用

如果你还不会使用注解,你肯定不好意思对别人说你学过Spring,你学过Mybatis,因为它们用了大量的注解。可见注解在开发领域已经使用的非常广泛了。

701

扫码关注云+社区