Javascript中OOP原型的详细解释

前言

javascript的原型链对于一些刚刚学习Javascript的初学者来说,书中的神秘性似乎还不是很清楚,但是如果你想学Javascript,我得学习一下,也许你很少有机会使用它,但是我想说的是,对于那些有准备的人来说,我们来了解一下这篇文章。

在百度百科,这描述的特性:在Javascript中,和原型对象是一种重要的面向对象机制。每个函数是一个对象(函数),这个函数对象的子对象的原型对象,而类是一个函数的形式定义,原型代表函数的原型和代表了一个集合类的成员。



在实践中理解



所以我在浏览器中做了以下实验:


您可以看到,我设置了一个测试类型。我使用typeof得到测试类型的类型和结果的功能,结果告诉我们,他是一个班。接下来我继续是test.prototype,类型,原型的类型,其结果是对象,告诉我们,这是一个对象,如果你添加一个系列为对象的方法和属性,你会明白什么是对象。是.既然我们知道它是一个对象,我们就可以对对象进行一系列操作。

请看代码:





两个参数品牌、模型
功能的汽车(汽车品牌、型号){
this.carbrand =汽车品牌;
方法=模型;
}
加速法的一种方法
(car.prototype.acceleration =功能){
console.log(这是+ + +this.carbrand方法);
}
另一种方法/喇叭
(car.prototype.hoot =功能){
console.log(嘀);
}
许多属性车轮
car.prototype.wheel = 4;

三个参数特斯拉品牌,型号,电源
特斯拉(汽车品牌、功能模型、功率){
car.call(这个汽车品牌、型号);
this.power =功率;
}

tesla.prototype = object.create(车。原型); / /创建一个空对象和原型的参数,这是car.prototype。
tesla.prototype.constructor =特斯拉; / /取消不影响整体的过程,但为了保持与特斯拉的结构一致,如果没有这个代码,构造函数的车

(tesla.prototype.acceleration =功能){
console.log(这是+ this.carbrand +这个模型+ +和驱动-- +这个权力);
}
/ /方法特斯拉的独特getgirl你知道
(tesla.prototype.getgirl =功能){
console.log(是的,他妈的车…;
}

特斯拉电动 / /模型
VaR模型=新的特斯拉(特斯拉
console.log(typeof模型);
加速度()模型;
console.log(模型。轮);
modelx.getgirl();
Hoot()模型;
console.log(特斯拉。原型。构造函数);



我做了一系列的笔记,打开特斯拉的代码。我定义这种类型的车,你需要两个参数,品牌和型号当你汽车的对象。有一个加速度,一路吹口哨。接下来我希望特斯拉可以继承的基本方法和属性的车。然后我定义了特斯拉的类型,并通过调用父类中,你可能不会在这里看到什么是这个电话的意义,因为在车型只要是做任务,任务后一系列复杂的逻辑操作(汽车生产),它会感觉很好。



输出结果

看看输出,不要问为什么,继续往下看。


你看到了输出。我是一个特斯拉ModelX,电动汽车,其他输出不详细描述。

特斯拉的原型原型指向一个汽车原型。为什么不直接分配呢原因是,当原型被直接赋值时,子类原型对象的附加属性和方法将被带到父类。

那么特斯拉本身的原型结构,如果不给自己,那么原型就是汽车,它不会影响整个过程,而是为了保证一致性,或者将原型保持在特斯拉之下。特斯拉和加速方法与父类相同的名称。它也有你的方式了解getgirl本身,你可以手动打电话看看有没有子类对象的父类的方法。

当子类调用父类方法时,子类被选中。特斯拉的子类没有哨子方法,原型是沿着原型链查找父类,父类可以用霍恩方法调用。

总结

以上就是本文的全部内容。我希望这篇文章的内容能帮助你学习或工作。如果有任何疑问,你可以留言。