首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

第195天:js---函数对象详解(call、apply)

一、call 1、call供爷法则 1 // 对象1 2 var myclass={ 3 getAllStudentsNumbers:function(num1,num2){...和apply的区别 传参的不同 14 //call是所有参数平铺,apply是将参数放在数组中进行传递 15 console.log(myclass.getAllStudentsNumbers.call...; 3、call使用场景---数组化 将伪数组转换为数组: var domNodes = Array.prototype.slice.call(divs); 1 /*伪数组:只有数组的部分功能:length...2、巧妙用法 (1)Max函数用法 1 // apply的一些其他巧妙用法 2 // 细心的人可能已经察觉到,在我调用apply方法的时候, 3 // 第一个参数是对象(this...null,这个是因为没有对象调用这个方法, 40 // 我只需要用这个方法帮我运算,得到返回的结果就行,.所以直接传递了一个null过去 (2)Min计算最小值 1 //计算最小值 2

63630

Java List存字符串对象

背景 今天在写代码时,想到一个有趣的面试题,List存String对象? 粗看好像问了一个Java语法相关的知识点,其实我想考的是你对Java泛型的理解。...回答不能,那么可以说对Java泛型几乎是没有理解,而仅仅回答,也是远远不够的。 一、怎么存? 首先来讲讲怎么存,话不多说,直接上代码,也不复杂大家都能看懂。...当然这里需要提一点,直接通过add方法来添加"String"字符串对象,显然是不可行的。 或许回答不能的,这个结论应该从这里来,市面上的idea在编写时也都会报错。 二、为什么存?...关键点来了,我所期望的是面试者提出泛型擦除,与Java的泛型只在编译期生效。 简单整个笔试可能出现的题,或许又能加深你对它的印象。

72220
您找到你想要的搜索结果了吗?
是的
没有找到

Java整型List存字符串对象

背景 今天在写代码时,想到一个有趣的面试题,如题List能够存String对象? 粗看好像问了一个Java语法相关的知识点,其实我想考的是你对Java泛型的理解。...回答不能那么可以说对Java泛型几乎是没有理解,而仅仅回答,也是远远不够的。 一、怎么存? 首先来讲讲怎么存,话不多说,直接上代码,也不复杂大家都能看懂。...当然这里需要提一点,直接通过add方法来添加"String"字符串对象,显然是不可行的。 或许回答不能的,这个结论应该从这里来,市面上的idea在编写时也都会报错。 二、为什么存?...关键点来了,我所期望的是面试者提出泛型擦除,与Java的泛型只在编译期生效。 简单整个笔试可能出现的题,或许又能加深你对它的印象。

59800

构造函数和析构函数可以是虚函数,在里面调用虚函数

先说构造函数,构造函数作为虚函数是不可以的,首先c++编译器上不会让你通过 在内存上,我们知道,一个对象会有一个虚函数表,虚函数表在构造函数中初始化,可是一个对象还没有完成实例化,他的虚函数表是不存在的...,一个对象需要调用构造函数完成实例化,这里形成了一个悖论 在意义上,将构造函数声明为虚函数没有意义,虚函数主要是实现多态,c++的多态是在运行时构建基类基类来调用不同函数,而不是根据情况动态调用构造函数...这时候如果是基类指针指向子类对象,那么删除指针,只会调用基类的析构函数,因为这时候对象类型是基类对象,析构函数没有动态绑定,只会调用当前对象类型的析构。...那在构造函数里调用虚函数 这个问题之前腾讯后端一面出现过,我当时有点蒙 首先编译器是允许你这么做的,但是在构造函数里调用虚函数,可能达不到你想要的效果,我们看看下面的代码 class Father...//Father f 代码运行后,构造函数只调用了父类的虚函数,我们本来想要调用子类的虚函数。

1.1K50

this调用到父类

它们都是用来起指代作用的,每个类在实例化的时候之所以调用到 Object 类(Object 类是所有类的父类),全是二者的“功劳”。...对于 super() 方法也是类似,如果没有显示指定 super() 方法,那么子类会生成一个隐藏的 super() 方法,用来调用父类的无参构造方法,这就是咱们开篇所说的“每个类在实例化的时候之所以调用到...3.this 和 super 的区别 1.指代的对象不同 super 指代的是父类,是用来访问父类的;而 this 指代的是当前类。...4.this 可用于 synchronized 因为 this 表示当前对象,所以this 可用于 synchronized(this){....} 加锁,而 super 则不能实现此功能。...this 表示当前对象,super 用来指代父类对象,它们有四点不同:指代对象、查找访问、本类属性赋值和 synchronized 的使用不同。

1.1K10

重学前端(二)-你真的了解你JS对象

书接上文,开始重学前端(第二篇) Object——对象 开篇之初我们先抛出几个问题? 1、什么是面向对象? 2、function 是一个对象? 3、对象分为几类呢? 4、什么是原型对象?...到这你是不是发现,我们的对象这么去赋值,和取值 如下图,我们发现我们用上述方法去给对象赋值和取值,也可以实现 ?...原型对象实现继承 由于在es6出现之前,我们没有类的概念,我们的语言标准,就沿用了祖师爷发明的原型系统,虽然不是正统语言该有的样子,但也独领风骚,什么都长得像java还能叫js?...,这些为啥实现显示绑定,我就不在赘述,有兴趣可以去看我之前临摹的call,apply,bind的源码 代码抗击病毒之-大厂面试必考题总结 function foo() { console.log...( this.a ); } var obj = { a: 2 }; foo.call( obj ); // 2用call强制绑定了一下 复制代码 new绑定 function foo(a) {

1.1K10

JS调试工具,万的Console,你知道还能这样玩

但是你真的会用?可能有些用法你到现在都还不知道,那么今天我来给各位分享一下Console的比较具体的玩法,助你开发调试更容易。 正文 什么是Console?...Console是用于显示JS和DOM对象信息的单独窗口。并且向JS中注入1个 Console 对象,使用该对象可以输出信息到Console窗口中。 什么浏览器支持console?...比如 IE8 自带的开发工具虽然支持 Console,但功能比较单调,显示对象的时候都是显示 [Object,Object],而且不能点击查看对象里面的属性。...使用 alert 不是一样可以显示信息,调试程序?alert 弹出窗口会中断程序, 如果要在循环中显示信息,手点击关闭窗口都累死。而且 alert 显示对象永远显示为[object ]。...,即当前函数是如何调用的 console.group、console.groupCollapsed、console.groupEnd 这3个函数用于把log等输出的信息进行分组,方便阅读查看。

1.6K20

JS里一切都是对象?疑问引发的烧脑思考

不知道之前在哪看的一句话:"在JS里,一切都是对象~",当时觉得还挺有道理的.毕竟像常用的函数,数组等的确都是对象!(可以用typeof查看)....真的全是对象?...JS里的装箱和拆箱 概念: 1.装箱指的是,将一个值变成指向该值的对象。(复制值) 2.拆箱指的是,把指向值的对象还原成该值。...(复制值) var a = 'str' a.toString() 当执行toString()方法时,JS会自动将其包装成String对象调用方法.过程如下: { // 伪代码 var b = new...中貌似并非一切皆是对象对象也针对于引用类型来说的,原始类型,本质上只是一个内存中的一个二进制的数字而已,不是一个对象,之所以能够使用这些方法,是由于他执行了所谓装箱操作,去调用了内置的固有对象,去实例化了一个对象

84710

字节跳动最爱考的前端面试题:JavaScript 基础

如果后台发送了一个超过最大自己的数字怎么办 Math.pow(2, 53) ,53 为有效数字,会发生截断,等于 JS 支持的最大数字。...如果函数返回一个对象,那么new 这个函数调用返回这个函数的返回对象,否则返回 new 创建的新对象 问:symbol 有什么用处 可以用来表示一个独一无二的变量防止命名冲突。但是面试官问还有?...,用这个构造函数创建出的实例会继承这个对象的属性?...箭头函数当构造函数? 普通函数通过 function 关键字定义, this 无法结合词法作用域使用,在运行时绑定,只取决于函数的调用方式,在哪里被调用调用位置。...绑定在这个实例对象上 当直接调用时,执行 [[Call]] 方法,直接执行函数体 箭头函数没有 [[Construct]] 方法,不能被用作构造函数调用,当使用 new 进行函数调用时会报错。

1.3K20

迷失中的this指向,看完这篇就会了

而且这里是userInfo.getName()这不是一个隐式调用?...对象上 obj.c(),因为c是一个箭头函数,所以内部的this就是指向的全局对象 obj.b.call(null)这个null是非常迷惑人,通常来说call不是改变函数内部this的指向,但是这里,...这个相信很多小伙伴已经耳熟祥了,call,apply,bind,能手撕call,apply,bind的文章已经不计其数 这里就只讲解如何使用,以及他们在业务中的一些具体使用场景 call 用一段伪代码举证以下...但是有时候如果业务复杂,你想隔离业务的耦合,达到通用,call帮你减少不少代码量 apply apply也是可以改变this对象 const userInfo = { publicName:...,在严格模式下,普通函数内的this不是全局对象 迷惑的this指向问题,正常情况this指向的是被调用的那个对象,但是如果是箭头函数,那么指向的是全局对象window bind,call, apply

45940

JavaScript 核心原理剖析

面试总挂在js基础上的人想夯实js基础我这也算一个JS基础的体系了。 既然是体系肯定比盲目去网上捞资源来得靠谱,放心入坑。了解一门语言先从数据类型开始Q1: js有哪些数据类型? 6种还是8种?...可以得出以下结论:typeof 判断 除null 外的基础数据类型 和 functioninstanceof 判断复杂引用数据类型,不能判断基础数据类型同意下滑。...new、apply、call、bind 的实现new如果你【new】 一下,会经历:创建一个新对象(Object);将构造函数的作用域赋给新对象(也就是 this 要指向新对象);执行构造函数中的代码(...先看以下 todo list:需要一个js执行器一行行的去解释你的代码读到一个作用域就丢进一个 先进后出的 堆栈结构( call stack ,调用堆栈)好的,当调用堆栈遇到了需要异步处理的某个作用域函数...直到call stack 执行完fn1. 第三轮循环结束16.消息队列空了,且无新的任务被压入。17.最终,call stack 释放全局上下文。到此三轮循环结束,声明过的对象都被释放掉。

37010

JavaScript 中 this 的使用技巧总结

作为对象的方法调用 当一个函数被当作一个对象的方法调用的时候: ? 这时候,this 指向当前的这个对象; 当然,我们还可以这么做: ?...同样不变,因为在 js 中一切都是对象,函数也是一个对象,对于 test ,它只是一个函数名,函数的引用,它指向这个函数,当 foo = test,foo 同样也指向了这个函数。...,却指向了全局对象,这里不是把它当作函数的方法使用?...call, apply, bind 在 js 中,函数也是对象,同样也有一些方法,这里我们介绍三个方法,他们可以更改函数中的 this 指向: call ?...可以看到,这里的 call 指向 this 的操作并没有成功,所以可以得出: 箭头函数中的 this 在定义它的时候已经决定了(执行定义它的作用域中的 this),与如何调用以及在哪里调用它无关,包括

84130

我的 Web 前端面试经历——百度

至少这上面的面试题你全答出来,说得足够清楚!...负载均衡你了解?阐述一下 linux环境你熟悉?说一些你用过的指令 webpack了解?用过哪些功能 对css预编译器有所了解?...的输出不一样 对象本质不一样,可以正常调用的 1,3都是 Date构造出的,而其它的则是 MyDate构造出的 我们上文中得出的一个结论是:由于调用对象不是由Date构造出的实例,所以不允许调用,就算是自己的原型链上有...此时我们可以更加准确一点的确认:由于调用对象不是由Date构造出的实例,所以不允许调用。...(MyClass.prototype); 使用指定的参数调用构造函数 MyClass,并将 this绑定到新创建的对象, MyClass.call(instance);,执行后拥有所有实例属性 如果构造函数返回了一个

60910

经常被面试官考的JavaScript数据类型知识你真的懂吗?

本文中讲解的内容 面试题引入 js中的数据类型 js弱类型语言 js中的强制转换规则 js转换规则不同场景应用 js中的数据类型判断 NaN相关总结 toString与String的一些误区 文章篇幅较长...对象值存储的是引用地址,所以和基本类型值不可变的特性不同,对象值是可变的。 js弱类型语言 面试官问:说说你对javascript是弱类型语言的理解?...为了充分利用该特性就必须掌握类型转换的原理, js中的强制转换规则 面试官问:javascript中强制类型转换是一个非常易出现bug的点,知道强制转换时候的规则?...每个对象都有一个 toString() 方法,当对象被表示为文本值时或者当以期望字符串的方式引用对象时,该方法被自动调用。...,例如函数(可调用对象)、数组(有序索引对象)等进行判定,则除了函数都会得到 object 的结果。

69920
领券