Javascript 我自己的迷你框架与某些项目不兼容
我没能创建一个带有一些在互联网上找到的有用函数的迷你库,我想通过在HTML中包含一个文件(比如jQuery)来轻松使用它们 问题是,一些变量和函数共享相同的名称,它们导致了问题Javascript 我自己的迷你框架与某些项目不兼容,javascript,compatibility,Javascript,Compatibility,我没能创建一个带有一些在互联网上找到的有用函数的迷你库,我想通过在HTML中包含一个文件(比如jQuery)来轻松使用它们 问题是,一些变量和函数共享相同的名称,它们导致了问题 有没有更好的解决方案,而不是像“bbbb123”这样给变量/函数起疯狂的名字,这样有人使用“bbbb123”变量的几率就很低了?我会把你所有的函数和变量放在你库的一个对象中 var MyLibrary = { myFunc: function() { //do stuff }, myVar: "Fo
有没有更好的解决方案,而不是像“bbbb123”这样给变量/函数起疯狂的名字,这样有人使用“bbbb123”变量的几率就很低了?我会把你所有的函数和变量放在你库的一个对象中
var MyLibrary = {
myFunc: function() {
//do stuff
},
myVar: "Foo"
}
在JavaScript中定义“类”有几种不同的方法。包含3个函数的页面很好。我会将所有函数和变量放入库的单个对象中
var MyLibrary = {
myFunc: function() {
//do stuff
},
myVar: "Foo"
}
在JavaScript中定义“类”有几种不同的方法。包含3个变量的页面很好。您应该在全局名称空间中使用一个变量名,这样使用的可能性很低,并将其他所有变量名放在它下面(在它自己的名称空间中) 例如,如果我想调用我的库AzureLib:
AzureLib = {
SortSomething: function(arr) {
// do some sorting
},
DoSomethingCool: function(item) {
// do something cool
}
};
// usage (in another JavaScript file or in an HTML <script> tag):
AzureLib.SortSomething(myArray);
AzureLib={
SortSomething:功能(arr){
//整理一下
},
DoSomethingCool:功能(项目){
//做点酷的事
}
};
//用法(在另一个JavaScript文件或HTML标记中):
AzureLib.SortSomething(myArray);
您应该在全局名称空间中使用一个变量名,该名称使用的可能性很低,并将其他所有内容放在它下面(在它自己的名称空间中)
例如,如果我想调用我的库AzureLib:
AzureLib = {
SortSomething: function(arr) {
// do some sorting
},
DoSomethingCool: function(item) {
// do something cool
}
};
// usage (in another JavaScript file or in an HTML <script> tag):
AzureLib.SortSomething(myArray);
AzureLib={
SortSomething:功能(arr){
//整理一下
},
DoSomethingCool:功能(项目){
//做点酷的事
}
};
//用法(在另一个JavaScript文件或HTML标记中):
AzureLib.SortSomething(myArray);
您可以将所有库函数放在一个对象中。这样,只要该对象的名称不冲突,您就会很好。比如:
var yourLib = {};
yourLib.usefulFunction1 = function(){
..
};
yourLib.usefulFunction2 = function(){
..
};
您可以将库的所有函数放在单个对象中。这样,只要该对象的名称不冲突,您就会很好。比如:
var yourLib = {};
yourLib.usefulFunction1 = function(){
..
};
yourLib.usefulFunction2 = function(){
..
};
是的,您可以创建一个对象作为名称空间。有几种方法可以做到这一点,语法方面,但最终结果大致相同。您的对象名称应该是其他人不会使用的名称
var MyLibrary = {
myFunc: function() { /* stuff */ }
};
请记住,它是对象文字语法,所以您可以使用label:value
将内容放入其中,而不是var label=value代码>
如果您需要首先声明内容,请使用包装函数来封装环境并保护您不受全局范围的影响:
var MyLibrary = (function() {
var foo = 'bar';
return {
myFunc: function() { /* stuff */ }
};
})(); // execute this function right away to return your library object
是的,您可以创建一个对象作为名称空间。有几种方法可以做到这一点,语法方面,但最终结果大致相同。您的对象名称应该是其他人不会使用的名称
var MyLibrary = {
myFunc: function() { /* stuff */ }
};
请记住,它是对象文字语法,所以您可以使用label:value
将内容放入其中,而不是var label=value代码>
如果您需要首先声明内容,请使用包装函数来封装环境并保护您不受全局范围的影响:
var MyLibrary = (function() {
var foo = 'bar';
return {
myFunc: function() { /* stuff */ }
};
})(); // execute this function right away to return your library object
解决方案是像jQuery那样做:将您的所有行为封装在一个模块中,这样您在全局名称空间中只使用一个符号。请创建一个简短的示例,如果您能够做到这一点,我将永远感到高兴(因为我对我得到的名称空间解决方案不是100%满意)解决方案是像jQuery那样做:将您的所有行为封装在一个模块中,这样您在全局名称空间中只使用一个符号。请创建一个简短的示例,如果您能够做到这一点,我将非常高兴,(因为我对我得到的名称空间解决方案不是100%满意)用法是什么,我如何使用它们:O?@TuxedoKnightChess只需使用MyLibrary.myFunc()调用它们即可。myFunc()有什么用途,我如何使用它们:O?@TuxedoKnightChess只需使用MyLibrary.myFunc()调用它们即可。