javascript中函数方法call()中参数this的问题

发布网友 发布时间:2022-04-22 01:34

我来回答

1个回答

热心网友 时间:2022-04-22 16:16

this写在不同的地方代表不同的对象

在classB内写的this指的就是classB

javascript不是一个真正面向对象的语言,所谓的继承不过是和面向对象的语言实现继承差不多的效果而已

你先了解call()的用法:

call方法: 
语法:call([thisObj[,arg1[, arg2[,   [,.argN]]]]]) 
定义:调用一个对象的一个方法,以另一个对象替换当前对象。 
说明: 
call 方法可以用来代替另一个对象调用一个方法。call 方法可将一个函数的对象上下文从初始的上下文改变为由 thisObj 指定的新对象。 

对你这里来说

 function ClassB(sColor)
 {
     ClassA.call(this,sColor);
 }

意思就是说 用ClassB的this来代替ClassA的this来执行ClassA()这个函数,所以ClassB就有了ClassA的所有功能 感觉像是继承了ClassA

追答我的表达有问题,w3c说的对,是指向调用该函数的对象。谁调用这个函数,就指向谁。如果没有被调用,那这语句根本就不会被执行,指向谁都没有意义。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com