JavaScript中的嵌套类
我是一个JavaScript的新手,我需要一个新的项目。现在我有一个问题:JavaScript中的嵌套类,javascript,class,Javascript,Class,我是一个JavaScript的新手,我需要一个新的项目。现在我有一个问题: var main = new function() { this.init = new function() { //access something.init(); }; this.something = new function () { this.init = function(){ //do something //execu
var main = new function() {
this.init = new function() {
//access something.init();
};
this.something = new function () {
this.init = function(){
//do something
//execute somethingother()
};
this.somethingother = function(){
//do something
};
};
};
main.init();
你能帮我吗?JavaScript没有现成的类。您需要自己实现类
一个流行的实现是,如果您不想编写自己的实现。如果您想在函数中嵌套函数,您可以,但您应该学习javascript语法、词法范围和变量提升的工作原理,以及总体上阅读Douglas Crockford的文章(或观看他的视频) 您显示的代码将不起作用,请尝试查看我对它的修改,并理解其中的差异
var Main = function() {
/* this function is a constructor */
var m = this; // store scope
// do your init stuff
m.boringCollection = {
/* simple object with function inside */
/* notice JSON style formatting */
doStuff : function(){
//do something
},
doOtherStuff : function(){
//do something else
};
};
m.coolConstructor = function () {
var cc = this; // store scope
var sleep = true; // just an example variable
cc.moveMyself = function(){
//do something
};
cc.init = function() {
sleep = false; // just an example
cc.moveMyself(); // will work
cc.work(); // will FAIL, because function work is defined after its called
};
cc.work = function() {
// do some work
};
};
};
var main = new Main(); // make new instance of Main
main.boringCollection.doOtherStuff(); // will work
main.coolConstructor.init(); // will NOT work
var scrappy = new main.coolConstructor(); // make new instance of m.coolConstructor
scrappy.init(); // will work
这似乎不是一个实际问题。这很可能是一个家庭作业,找出所有可能和将会出错的地方。“一个非常困难的家庭作业”。现在我恨你了。你自己做作业。这对你的未来有好处。别开玩笑了,谢谢你的回答。嗯,也许我用错词了(课堂)。我想这样做,但我不知道如何从main.init或main.something.init访问其他函数。@FranzFinke-Javascript没有类,但它有返回对象实例的构造函数(只是用
new
关键字调用的函数)。困惑了吗?:)我相信,JavaScript不是一种真正的oop语言,因为它只使用对象,而没有类^^^你是对的,它不是一种“经典”的面向对象语言,它是一种“原型”的面向对象语言。。。