JavaScript之this,new,delete,call,apply
OS:Window 8.1
关键字:JavaScript,HTML,this,new,delete,call,apply。
1.this
一般而言,在Javascript中,this指向函数执行时的当前对象。
2.new
在JavaScript中,使用new关键字后,意味着做了如下四件事情:
- 创建一个新的对象,这个对象的类型是object;
- 设置这个新的对象的内部、可访问性和[[prototype]]属性为构造函数(指prototype.constructor所指向的构造函数)中设置的;
- 执行构造函数,当this关键字被提及的时候,使用新创建的对象的属性;
- 返回新创建的对象(除非构造方法中返回的是‘无原型’)。
3.delete
delete操作符通常用来删除对象的属性,而不是一般的变量或者是函数。
4.call
应用于:Function 对象
调用一个对象的一个方法,以另一个对象替换当前对象。
call([thisObj[,arg1[, arg2[, [,.argN]]]]])
参数:
thisObj
可选项。将被用作当前对象的对象。
arg1, arg2, , argN
可选项。将被传递方法参数序列。
说明:
call 方法可以用来代替另一个对象调用一个方法。call 方法可将一个函数的对象上下文从初始的上下文改变为由 thisObj 指定的新对象。如果没有提供 thisObj 参数,那么 Global 对象被用作 thisObj。
5.apply
call, apply都属于Function.prototype的一个方法,它是JavaScript引擎内在实现的,因为属于Function.prototype,所以每个Function对象实例,也就是每个方法都有call, apply属性.既然作为方法的属性,那它们的使用就当然是针对方法的了.这两个方法是容易混淆的,因为它们的作用一样,只是使用方式不同.
Function.apply(obj,args)方法能接收两个参数
obj:这个对象将代替Function类里this对象
args:这个是数组,它将作为参数传给Function(args-->arguments)
6.运行调试一下JS代码,有助于对以上概念的理解。
<html> <body><script>function Base(){this.name = 'Base';this.age = 1;this.show = function(){alert('Name:' + this.name + '\n' + 'Age:' + this.age.toString());};this.reset = function(name, age){this.name = name;this.age = age;};alert(this);}function A(){this.name = 'A';this.age = 1;}Base();var base = new Base();var isDeleted = delete base;alert('delete base: ' + isDeleted);//delete无效 base.show();isDeleted = delete base.name;alert('delete base.name: ' + isDeleted);//delete有效 base.show();base = new Base();var a = new A();base.show.call(a);base.show.apply(a);base.reset.call(a, 'AA', 11);base.show.call(a);base.reset.apply(a, ['AAA', 111]);base.show.apply(a);</script> </body> </html>
7.使用call来实现类的继承。代码如下,在类B的构造函数里面调用“Base.call(this);”,则B可以使用Base里面的方法和属性。
function B(){Base.call(this);this.name = 'B';this.age = 2;}var b = new B();b.show();
转载于:https://www.cnblogs.com/ldlchina/p/4541726.html
JavaScript之this,new,delete,call,apply相关推荐
- 【转】全面理解javascript的arguments,callee,caller,call,apply概念(修改版)
(注:在看到大家如此关注JS里头的这几个对象,我试着把原文再修改一下,力求能再详细的阐明个中意义 2007-05-21) 在提到上述的概念之前,首先想说说javascript中函数的隐含参数:arg ...
- JavaScript之call,bind,apply方法及 this 的用法辨析
文章转自个人博客 https://knightyun.github.io/2019/05/01/js-call,转载请申明. 概述 JavaScript函数中的三个方法.call(), .apply( ...
- Javascript:call(),apply()和bind()
What' s "this" 在面向对象的JS中,我们了解到在JS中,一切都是对象.因为一切都是对象,我们开始明白我们可以为函数设置和访问其他属性.而this提供了一种更优雅的方式 ...
- [转] 理解 JavaScript 中的 Array.prototype.slice.apply(arguments)
假如你是一个 JavaScript 开发者,你可能见到过 Array.prototype.slice.apply(arguments) 这样的用法,然后你会问,这么写是什么意思呢? 这个语法其实不难理 ...
- JavaScript/ES6 从this开始理解apply() call() bind()、 class 、箭头函数
一 this 关键字 1.1 概念 this 简单来说指的是属性或方法或全局的当前对象,始终会返回一个对象. 在全局上下文的执行环境中,this的值会指向全局变量,在浏览器中则引用windows对象: ...
- JavaScript知识点之:delete操作符
delete操作符来删除一个隐式声明的全局变量,也就是没有使用var定义的全局变量. 如果delete操作符删除成功, 则被delete的属性已从所属的对象上彻底消失, 随后,该对象的原型上可能存在的 ...
- 【转载】全面理解javascript的caller,callee,call,apply概念(修改版)
今天写PPlayer,发现有段代码引起了我的兴趣: var Class = { create: function() { return function() { this.initialize.app ...
- Javascript中call函数和apply函数的使用
Javascript 中call函数和apply的使用: Javascript中的call函数和apply函数是对执行上下文进行切换,是将一个函数从当前执行的上下文切换到另一个对象中执行,例如: so ...
- javascript下的arguments,caller,callee,call,apply示例及理解
在看到大家如此关注JS里头的这几个对象,我试着把原文再修改一下,力求能再详细的阐明个中意义.在提到上述的概念之 前,首先想说说javascript中函数的隐含参数:arguments Argument ...
- JavaScript -- arguments、apply 、call、bind
前言 笔记来源:JavaScript 高级程序设计 笔记内容:apply .call.bind 相同点与不同点 运行环境:浏览器环境 arguments ECMAScript 中的参数在内部是用一个数 ...
最新文章
- 【Python刷题】_4
- Java设计模式之双向责任链COR模式
- 北航计算机学院毕业生2019,北航2019届本科生毕业典礼暨学位授予仪式举行
- Idea单测执行报错“Command line is too long“ 解决办法
- SAP UI5 neo-app.json
- 【剑指offer - C++/Java】6、旋转数组的最小数字
- 【软件工程】软件开发的本质
- java定时刷新界面_Java定时更新数据---定时器
- kk服务器信息及端口,kk服务器设置
- gnome-mplayer 挂载 srt字幕 乱码
- Win7如何禁用无线网卡
- Scipy教程 - 线性代数库scipy.linalg
- 概率论基础 - 6 - 切比雪夫不等式
- 养一只”无限猴子”帮你测试
- u深度制作linux启动盘制作工具,u深度u盘启动盘制作工具
- 520表白——送她一片星空模拟
- fld to xml and xml to fld
- [转]《英特尔多核/多线程技术》
- 动手学深度学习-pytorch 导入d2lzh_pytorch模块时报错 No moudel named 'd2lzh_pytorch'
- VS2010 Visual Assist X破解方法
热门文章
- 关于margin的数值是百分比,参照对象
- Nginx源码分析 - 基础数据结构篇 - 单向链表结构 ngx_list.c(06)
- 如何理解和使用Java package包
- pio代表什么_“PIO是什么的简称?PIO”是什么的 – 手机爱问
- [渝粤教育] 中国地质大学 电力系统保护原理 复习题
- caffe cifar10 net笔记
- Tensorflow官方文档学习理解 (六)-TensorFlow运作方式入门
- pyCharm第三方库安装
- c++小学期大作业攻略(二)整体思路+主界面
- [转]——软件开发人员如何成长