相关疑难解决方法(0)

JavaScript:Class.method vs. Class.prototype.method

以下两个声明之间有什么区别?

Class.method = function () { /* code */ }
Class.prototype.method = function () { /* code using this.values */ }
Run Code Online (Sandbox Code Playgroud)

是否可以将第一个语句视为静态方法的声明,将第二个语句视为实例方法的声明?

javascript oop prototype-programming

481
推荐指数
4
解决办法
18万
查看次数

了解JavaScript中的原型继承

我是JavaScript OOP的新手.你能解释下面的代码块之间的区别吗?我测试了两个块都有效.什么是最佳实践,为什么?

第一块:

function Car(name){
    this.Name = name;
}

Car.prototype.Drive = function(){
    console.log("My name is " + this.Name + " and I'm driving.");
}

SuperCar.prototype = new Car();
SuperCar.prototype.constructor = SuperCar;

function SuperCar(name){
    Car.call(this, name);
}

SuperCar.prototype.Fly = function(){
    console.log("My name is " + this.Name + " and I'm flying!");
}

var myCar = new Car("Car");
myCar.Drive();

var mySuperCar = new SuperCar("SuperCar");
mySuperCar.Drive();
mySuperCar.Fly();
Run Code Online (Sandbox Code Playgroud)

第二块:

function Car(name){
    this.Name = name;
    this.Drive = function(){ 
        console.log("My name is " + this.Name + …
Run Code Online (Sandbox Code Playgroud)

javascript oop inheritance constructor prototype-programming

170
推荐指数
3
解决办法
5万
查看次数