前端面试——JavaScript中this的作用

news/2024/7/19 13:04:20 标签: js, this

this是 JavaScript 语言的一个关键字。

它代表函数运行时,自动生成的一个内部对象,只能在函数内部使用。比如:

function test() { 
    this.x = 1; 
}

随着函数使用场合的不同,this 的值会发生变化。但是有一个总的原则,那就是this指的是,调用函数的那个对象。

 

以下是一道面试题:

var a = 10;
var obt = {
    a: 20,
    fn: function() {
        var a = 30;
        console.log(this.a)
    }
}

采用下面五种方式调用

 obt.fn();
 obt.fn.call(); 
 (obt.fn)();
 (obt.fn,obt.fn)();
 new obt.fn();

上面五种操作会依次输出:

20,10,20,10,undefined

第一个不用说,第二个call()函数没有传入参数的情况下会把global作为作用域,第四个跟书本上的赋值操作应该差不多,this不能维持,所以返回全局作用域的a;

第五个new操作会创建一个新的对象,然后将fn函数的作用域指向这个新对象,但是因为这个新对象没有a属性,所以输出undefined。

所以你答对了吗?

 


http://www.niftyadmin.cn/n/1466691.html

相关文章

前端面试——JS去除首尾空格代码

关于 JavaScript 里的 trim()/strip() 方法 在其他语言中常常用 trim()/strip() 方法脱去不必要的空格等元素。 JavaScript 本身并不提供 trim() 方法,不过可以用正则表达式,通过给 String 对象增加 trim 方法的方式实现。 如下: if(typeo…

前端面试——JavaScript的BOM和DOM有什么区别?

这是浏览器运行时中的两个不同的概念。 1、BOM 浏览器对象模型 Browser Object Model(浏览器对象模型),提供了独立于内容而与浏览器窗口进行交互的对象。描述了与浏览器进行交互的方法和接口,可以对浏览器窗口进行访问和操作&am…

HTML DOM 简介

什么是 DOM? DOM 是 W3C(万维网联盟)的标准。 DOM 定义了访问 HTML 和 XML 文档的标准: "W3C 文档对象模型 (DOM) 是中立于平台和语言的接口,它允许程序和脚本动态地访问和更新文档的内容…

前端面试——W3C标准及规范

作为前端工程师对W3C标准和规范不是很陌生。很多招聘要求中经常提到深入了解W3C标准及规范。那下面就总结一下W3C标准及规范: 概念:W3C标准 中文名:万维网联盟,外文名:World Wide Web Consortium 万维网…

HTML之DocType的几种类型

一、什么是DOCTYPE DOCTYPE是Document Type(文档类型)的简写,在页面中,用来指定页面所使用的XHTML(或者HTML)的版本。要想制作符合标准的页面,一个必不可少的关键组成部分就是DOCTYPE声明。只有…

前端页面格式化代码

大家在写前端页面的时候经常也是用到各种格式化,要么就是手写,要么就是网上找一份,这里有一份比较齐全的格式化,大家可以参考使用 html,body,h1,h2,h3,h4,h5,h6,div,dl,dt,dd,ul,ol,li,p,blockquote,pre,hr,figure,table,caption…

AngularJS 教程——基础

1、ng-app" " 定义angularJS的使用范围; 2、ng-init"变量值;变量值" 初始化变量的值,有多个变量时,中间用分号隔开; 3、ng-model"变量" 定义变量名; 4、ng-bind"变量" …

display:inline-block的间隙问题和解决办法

1、display:inline-block在水平方向的间隙&#xff1b; 代码如下&#xff1a; <style type"text/css"> * {margin: 0;padding: 0; }.test {width: 600px;border: 1px blue solid; }.test div {width: 100px;height: 100px;display: inline-block;background:…