gpt4 book ai didi

JavaScript 伪类模式

转载 作者:行者123 更新时间:2023-11-30 17:01:22 24 4
gpt4 key购买 nike

大家好,我是 JavaScript 的新手,我正在研究对象创建模式,特别是我专注于伪类模式,所以我写了几行代码来检查我是否理解了这个概念:

var Car = function (name, x, y) {
this.name = name;
this.x = x;
this.y = y;
};

Car.prototype.drive = function (byX, byY) {
this.x += byX;
this.y += byY;
};

var ferrari = new Car("Ferrari", 5, 5);
ferrari.drive(5, 5);

var ferrari_proto = Object.getPrototypeOf(ferrari);
var ferrari_proto_proto = Object.getPrototypeOf(ferrari_proto);
var ferrari_proto_proto_null = Object.getPrototypeOf(ferrari_proto_proto);

console.log(ferrari_proto); // Should be Function
console.log(ferrari_proto_proto); // Should be Object
console.log(ferrari_proto_proto_null); // Should be Null

我从运行代码得到的是:

{ drive: [Function] }
{ }
null

并记录我得到的这些对象的类型:

object
object
object

现在,我认为以这种方式创建对象时,ferrari 原型(prototype)应该是 Car 函数,所以我期望的是:

function    // Tha Car function
object // The Function prototype, that is Object
object // null, that is the end of the chain

有人可以解释为什么我得到这些输出以及为什么我错了?!

最佳答案

the ferrari prototype would have been the Car function

不,您的 ferrari 的原型(prototype)(它继承的对象)是 Car.prototype - 您可以在其中放置方法,例如 .driveCar 构造函数与此不同。

关于JavaScript 伪类模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28786900/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com