gpt4 book ai didi

JavaScript 原型(prototype)设计

转载 作者:行者123 更新时间:2023-12-03 08:02:41 25 4
gpt4 key购买 nike

添加方法作为原型(prototype)和在构造函数内部定义有什么区别

例如:之间

function Car( model, year, miles ) {
this.model = model;
this.year = year;
this.miles = miles;
this.toString = function () {
return this.model + " has done " + this.miles + " miles";
};
}

function Car( model, year, miles ) {
this.model = model;
this.year = year;
this.miles = miles;
}

Car.prototype.toString = function () {
return this.model + " has done " + this.miles + " miles";
};

最佳答案

  1. this.toSting 向使用 Car 构造函数创建的每个新对象添加一个属性。

  2. Car.prototype 是一个单独的对象,所有使用 new Car(...) 创建的对象都继承其属性。由于 toString 是原型(prototype)对象的属性,因此所有 Car 对象都会继承该属性。

var car = new Car(...);

两者都可以通过调用car.toString()来访问。

但是,当进行调用时,首先会在 car 中搜索 toString 属性。如果不存在,则在原型(prototype)中搜索 toString 并调用它。如果两者都不存在,则沿着链向上搜索原型(prototype)原型(prototype),直到在基础对象原型(prototype)上找到 toString

关于JavaScript 原型(prototype)设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34525204/

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