gpt4 book ai didi

javascript - 当前命名空间/类中的 JavaScript 子命名空间/类的语法是什么?

转载 作者:搜寻专家 更新时间:2023-11-01 04:19:08 29 4
gpt4 key购买 nike

我最近一直在使用 JavaScript,并创建了一些大型函数集合。我发现需要有子功能,我想将其与主库分开,但仍包含在主库中,但还没有找到足够优雅的方法来做到这一点。

下面是我目前使用的几个例子

所以我通常这样设置我的主库

// Main library
var animals = function(settings){
// Main library stuff
}

添加单独封装但仍然是主库一部分的子类/子功能...

这是第一个使用对象字面量表示法的方法

animals.prototype.dogs = {
addDog: function(){
// Can only access the dogs object
var test = this;
},
removeDog: function(){}
}

// Usage of the whole thing
var animalsInstance = new animals({a: 1, b: 3});
animalsInstance.dogs.addDog();

虽然我真的很喜欢它的语法,但我永远无法真正使用它,因为无法在 dogs 对象的任何函数中引用动物实例。所以我想出了这个符号作为替代

animals.prototype.dogs = function(){
var parent = this;
return {
addDog: function(){
// The animals instance
var test = parent;
// The dogs instance
var test2 = this;
},
removeDog: function(){}
}
}

// Usage
var animalsInstance = new animals({a: 1, b: 3});
animalsInstance.dogs().addDog();

虽然现在我可以从 dogs 函数的所有子功能内部访问 animals 实例,但我真的不喜欢我做这件事的那种有点笨拙的方式。有没有人有更清洁的方法?

最佳答案

也许您正在寻找这样的东西...

这将使您拥有以下语法tinyFramework.Utilities.Storage.setItem()tinyFramework.Elements.Modals.createModal()

var tinyFramework = {

Utilities: {
Storage: {
setItem: function(){
//do stuff
},

getItem: function(){
//do stuff
}
},
Helpers: {

}
},

Elements: {

Modals: {

createModal: function(){
},
closeModal: function(){
}
}
}
}

关于javascript - 当前命名空间/类中的 JavaScript 子命名空间/类的语法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12270744/

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