js函数中call方法的使用

简介: js函数中call方法的使用

介绍:call与apply都属于Function.prototype的一个方法,所以每个function实例都有call、apply属性

1.改变函数内部的this指向:
// 有一个局部的test2方法,
// test2被作为普通函数调用时,
// test2内部的this指向了window,
// 但我们往往是想让它指向该#test节点,见如下代码:
document.querySelector("#test").onclick = function(){
console.log(this.id)
var test2 = function(){
console.log(this)
}
function test3(){
console.log(this)
}
test3.call(this)
//改变了test2的this指针
test2.call(this)
}
复制代码
2.使用call来实现构造函数的继承。
function one(){
this.a = 1,
this.b = 2,
this.test = function(){
// console.log(this)
}
}
复制代码
//通过call来实现构造函数的继承

function two(){
one.call(this)
console.log(this)
}
复制代码
// 实例化

var oneObj = new one()
twoObj = new two()
复制代码
此时的twoObj已经继承了oneObj的属性。



作者: Bill 本文地址: http://biaoblog.cn/info?id=1564390320000

版权声明: 本文为原创文章,版权归 biaoblog 个人博客 所有,欢迎分享本文,转载请保留出处,谢谢!

相关文章
|
JavaScript Linux 内存技术
Debian 11系统下Node.js版本更新方法详解
本指南详细介绍在Linux系统中安装和管理Node.js的步骤。首先检查现有环境,包括查看当前版本和清除旧版本;接着通过NodeSource仓库安装最新版Node.js并验证安装结果。推荐使用nvm(Node Version Manager)进行多版本管理,便于切换和设置默认版本。同时,提供常见问题解决方法,如权限错误处理和全局模块迁移方案,以及版本回滚操作,确保用户能够灵活应对不同需求。
1637 0
|
JavaScript Linux 内存技术
Debian 11系统下Node.js版本更新方法
Debian 11更新Node.js主要就是这三种方式,无论你是初涉其中的新手还是找寻挑战的专家,总有一种方式能满足你的需求。现在,你已经是这个
1655 80
|
JavaScript 前端开发 程序员
前端原生Js批量修改页面元素属性的2个方法
原生 Js 的 getElementsByClassName 和 querySelectorAll 都能获取批量的页面元素,但是它们之间有些细微的差别,稍不注意,就很容易弄错!
775 1
|
机器学习/深度学习 JavaScript 前端开发
JS进阶教程:递归函数原理与篇例解析
通过对这些代码示例的学习,我们已经了解了递归的原理以及递归在JS中的应用方法。递归虽然有着理论升华,但弄清它的核心思想并不难。举个随手可见的例子,火影鸣人做的影分身,你看到的都是同一个鸣人,但他们的行为却能在全局产生影响,这不就是递归吗?雾里看花,透过其间你或许已经深入了递归的魅力之中。
475 19
|
监控 JavaScript Java
Node.js中内存泄漏的检测方法
检测内存泄漏需要综合运用多种方法,并结合实际的应用场景和代码特点进行分析。及时发现和解决内存泄漏问题,可以提高应用的稳定性和性能,避免潜在的风险和故障。同时,不断学习和掌握内存管理的知识,也是有效预防内存泄漏的重要途径。
1132 159
|
JavaScript
JS实现多条件搜索函数
JS封装的多条件搜索
|
JavaScript 前端开发
JavaWeb JavaScript ③ JS的流程控制和函数
通过本文的详细介绍,您可以深入理解JavaScript的流程控制和函数的使用,进而编写出高效、可维护的代码。
344 32
|
JavaScript 前端开发 Java
js 垃圾回收机制的方法
JS回收机制方法讲解