qq_慕莱坞3428004
function Pet(words)是Pet类型的构造函数,Pet.call(this, words)就是用传递的this值,也就是Dog类型,来替换Pet构造函数中的this,使Dog类型的构造函数继承了Pet类型的构造函数,就可以获得其中的words属性和speak函数,所以Dog实例化出的dog对象可以使用Pet类型上的speak函数
sun_haha
function Person() - Function.prototype-Object.prototype-null
son -Person.prototype -Object.prototype -null
前端侠客
可以正常执行输出,仔细查一下你的代码是否有错误
兮兮酱
我自己搞明白了~~~
宝慕林7932394
我感觉是这样的,按老师写的不能成功。加上.prototype就好了,感觉之前用的没区别,就是设置了直接调用函数报错。
qq_Young_Foreve_03924380
举一个更简洁的例子:
function A() {
this.name = "111" //这里的this,称为this1
}
function B() {
A.call(this) //这里发生了:1、执行了构造函数A 2、用这个this(称为this2)替换了A()上面的this;
}
// this2.name="111" 执行了A()可以看成这样
var b = new B(); //执行到这里,1、B()里面的this2确定了,就是指向new B(),也就是B;
alert(b.name)如果感觉似懂非懂,再看这个:
function A() {
this.name = "111"
}
function B() {
this.name = "222"
}
var b = new B();
(function c() { //c是个自执行函数
A.call(b) //执行A函数,用b去代替A里面的this, 因此A里面的语句可以看成:b.name="111"
})()
alert(b.name)
qq_Young_Foreve_03924380
重载就是一组具有相同名字、不同参数列表的函数(方法)。
作者: visor_03389873
链接:http://www.imooc.com/article/8621
来源:慕课网
慕函数6472736
typeof Base// "function"
typeof Base.prototype //"object"
交替的黑白键
相当于把{func:func, prop,prop }这个对象赋值给了ModuleA,可以通过ModuleA.func来访问属性
Web_dlf
DetectorBase.detect这样写继承与它的之类调不到detect方法啊
慕数据3999539
我觉得理论上你这么写没毛病,因为只要传入的是个对象就可以,prototype也是个对象,不谈这个例子,你这么写虽然不会报错,但是实现不了咱们想要的功能
merry_0005
抽象类根本也是基于原型链的模拟实现,这个是不可以继承的
xtfzp
Person.call()确实是调用基类,Person.prototype.init.apply(this,arguments)这个是调用子类。
夜店小新新
夜店小新新
再不努力就是纯屌丝
你上面给DetectorBase.detect = func.....
只是给DetectorBase这个function对象赋予了 方法,而不是给DetectorBase(或者说是子类的实例)的实例赋予了方法,如果想给实例赋予方法 必须写成 DetectorBase.prototype.detect = function......
arlenhui
Java的抽象類也不能調用,但是它給予子類如何繼承提供了指導。
昊仔
好详细。。。。。。