gpt4 book ai didi

Javascript 原型(prototype)需要 .prototype。为什么?

转载 作者:行者123 更新时间:2023-11-28 13:42:59 25 4
gpt4 key购买 nike

我有一些代码作为我正在开发的 javascript 周末项目的一部分。我的问题在最后一行。据我所知,我应该能够只调用 Floater.create() ,而不必调用 Floater.prototype.create() 。为什么我需要额外的 .prototype?如果没有它,就会抛出错误:Floater() has no method "create"

function Floater(){}

Floater.prototype.create = function(){
//do stuff
}

$(document).ready(function(){
//do stuff
runStartup();
});

function runStartup(){
loginFloater = new Floater;
Floater.prototype.create();
// as far as I know, this should run as just Floater.create(),
// but that throws an error.
}

最佳答案

这部分:

Floater.prototype.create = function(){
//do stuff
}

不会向 Floater 构造函数添加属性,而是向使用 new Floater() 创建的实例的 [[Prototype]] 对象添加属性。因此,Floater 实例将具有该方法,但构造函数不会。

您可能希望将启动功能更改为:

function runStartup(){
loginFloater = new Floater();
loginFloater.create();
}

但是,考虑到方法的名称,您可能还希望完全删除create,并直接从构造函数中执行初始化操作:

function Floater(){
// init stuff here
}

关于Javascript 原型(prototype)需要 .prototype。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16574270/

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