javascript教程:call方法

2016-02-20 01:03 0 1 收藏

只要你有一台电脑或者手机,都能关注图老师为大家精心推荐的javascript教程:call方法,手机电脑控们准备好了吗?一起看过来吧!

【 tulaoshi.com - Web开发 】

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/webkaifa/)

call 方法
调用一个对象的一个方法,以另一个对象替换当前对象。

call([thisObj[,arg1[, arg2[,   [,.argN]]]]])
参数1:thisObj
可选项。将被用作当前对象的对象。
参数2:arg1, arg2, , argN
可选项。将被传递方法参数序列。
说明:
call 方法可以用来代替另一个对象调用一个方法。call 方法可将一个函数的对象上下文从初始的上下文改变为由 thisObj 指定的新对象。
如果没有提供 thisObj 参数,那么 Global 对象被用作 thisObj。

看懂了没?说实话我没看懂,哈哈,没看懂继续往下看。

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/webkaifa/)

call 方法在js继承中经常看到,也一直搞不懂,这到底是什么东西,看下面这段代码:

01.function Person(name,age){
02.  
this.name = name;
03.  
this.age=age;
04.  
this.alertName = function(){
05.   
alert(this.name);
06.  
}
07.  
this.alertAge = function(){
08.   
alert(this.age);
09.  
}
10. 
}
11.
 
12. 
function webDever(name,age,sex){
13.  
Person.call(this,name,age);
14.  
this.sex=sex;
15.  
this.alertSex = function(){
16.   
alert(this.sex);
17.  
}
18. 
}
19. 
var test= new webDever("愚人码头",28,"男");
20. 
test.alertName();//愚人码头
21. 
test.alertAge();//28
22. 
test.alertSex();//男

这样 webDever类就继承Person了,Person.call(this,name,age) 的 意思就是使用 Person对象代替this对象,那么 webDever中不就有Person的所有属性和方法了吗,test对象就能够直接调用Person的方法以及属性了;

说的再明白一点,就是相当于将webDever中的Person.call(this,name,age)这部分代码替换为Person类的:

1.this.name = name;
2.  
this.age=age;
3.  
this.alertName = function(){
4.   
alert(this.name);
5.  
}
6.  
this.alertAge = function(){
7.   
alert(this.age);
8.  
}
这样webDever类就相当于:

01. 
function webDever(name,age,sex){
02.  
this.name = name;
03.  
this.age=age;
04.  
this.alertName = function(){
05.   
alert(this.name);
06.  
}
07.  
this.alertAge = function(){
08.   
alert(this.age);
09.  
}
10.
 
11.  
this.sex=sex;
12.  
this.alertSex = function(){
13.   
alert(this.sex);
14.  
}
15. 
}
16. 
var test= new webDever("愚人码头",28,"男");
17. 
test.alertName();//愚人码头
18. 
test.alertAge();//28
19. 
test.alertSex();//男

不知道能不能这么理解?望大家斧正。

留一个问题:假设webDever类只要继承Person类中的alertName方法,这样可以吗?代码应该怎么写?

来源:https://www.tulaoshi.com/n/20160220/1633149.html

延伸阅读
标签: Web开发
上次写的一篇《JavaScript 数组的 uniq 方法》,发现代码的问题还是存在。比如如果数组内有 undefined 元素就无法过滤等。 昨天看见 Lazy 兄弟重新更新了函数,现在他是这样子写的: Array.prototype.uniq = function() {     var resultArr = [], ...
标签: Web开发
JavaScript基本数据结构 JavaScript提供脚本语言的编程与C++非常相似,它只是去掉了C语言中有关指针等容易产生的错误,并提供了功能强大的类库。对于已经具备C++或C语言的人来说,学习JavaScript脚本语言是一件非常轻松愉快的事。 一、JavaScript代码的加入 JavaScript的脚本包括在HTML中,它成为HTML文档的一部分。与HTML标识...
标签: Web开发
使用JavaScript可以创建自己的对象。虽然JavaScript内部和浏览器本身的功能已十分强大,但JavaScript还是提供了创建一个新对象的方法。 使其不必像超文本标识语言那样,求于或其它多媒体工具,就能完成许多复杂的工作。 在JavaScript中创建一个新的对象是十分简单的。首先它必须定义一个对象,而后再为该对象创建一个实例。这个实例就是...
标签: Web开发
JavaScript运行环境 软件环境: Windows 95/98或Windows NT。 Netscape Navigator x.0或Internet Explorer x.0。 用于编辑HTML文档的字符编辑器(WS、WPS、Notepad、WordPad等)或HTML文档编辑器。 硬件配置: 首先必须具备运行Windows 95/98或Windows NT的基本硬件配置环境。推荐: 基本内存32M。 ...
标签: Web开发
引子 编程世界里只存在两种基本元素,一个是数据,一个是代码。编程世界就是在数据和代码千丝万缕的纠缠中呈现出无限的生机和活力。 数据天生就是文静的,总想保持自己固有的本色;而代码却天生活泼,总想改变这个世界。 你看,数据代码间的关系与物质能量间的关系有着惊人的相似。数据也是有惯性的,如果没有代码来施加外力,她总保持...

经验教程

65

收藏

86
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部