Ert*_*ohl 0 javascript jquery prototype
我有一些代码作为我正在进行的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.
}
Run Code Online (Sandbox Code Playgroud)
这部分:
Floater.prototype.create = function(){
//do stuff
}
Run Code Online (Sandbox Code Playgroud)
不会向Floater构造函数添加属性,而是向使用创建的实例的[[Prototype]]对象添加属性new Floater().因此,Floater实例将具有该方法,但构造函数不会.
您可能希望将启动功能更改为:
function runStartup(){
loginFloater = new Floater();
loginFloater.create();
}
Run Code Online (Sandbox Code Playgroud)
但是,给定您的方法的名称,您也可能想要create完全删除,并直接从构造函数执行初始化操作:
function Floater(){
// init stuff here
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
103 次 |
| 最近记录: |