在php中,即使继承了类,self::
也可以访问自我类方法。
<?php
class A {
public function __construct(){
echo "A\n";
$this->foo();
self::foo();
echo "\n";
}
public function foo(){
echo 1;
}
}
class B extends A{
public function __construct(){
parent::__construct();
echo "B\n";
$this->foo();
self::foo();
echo "\n";
}
public function foo(){
echo 2;
}
}
new B();
// A
// 21
// B
// 22
我想在JavaScript中执行相同的操作。
class A {
constructor(){
this.foo()
// What code should I write here?
}
foo(){
console.log(1)
}
}
class B extends A {
constructor(){
super()
this.foo()
}
foo(){
console.log(2)
}
}
答案 0 :(得分:3)
从特定班级中获取特定功能&#39;原型并调用它来设置当前上下文(this
):
A.prototype.foo.call(this)
虽然注意到我会建议这在PHP和Javascript中都是一个坏主意。只需让覆盖工作正常,这就是它被覆盖的内容。