如何在JavaScript中创建命名空间,以便我的对象和函数不会被其他同名的对象和函数覆盖?我用过以下内容:
if (Foo == null || typeof(Foo) != "object") { var Foo = new Object();}
Run Code Online (Sandbox Code Playgroud)
这样做有更优雅或简洁的方式吗?
以下代码行之间有什么区别?
//Function declaration
function foo() { return 5; }
//Anonymous function expression
var foo = function() { return 5; }
//Named function expression
var foo = function foo() { return 5; }
Run Code Online (Sandbox Code Playgroud)
对类似问题(var functionName = function(){} vs function functionName(){})的响应是不是完全正确?
我想知道使用这些中的任何一个是否有任何优势,我应该走哪条路?
构造方法:
var Class = function () {
this.calc = function (a, b) {
return a + b;
};
};
Run Code Online (Sandbox Code Playgroud)
原型方法:
var Class = function () {};
Class.prototype.calc = function (a, b) {
return a + b;
};
Run Code Online (Sandbox Code Playgroud)
我不喜欢这样,使用原型,方法定义与类分开,我不知道是否有任何特定的原因我应该使用它而不是第一种方法.
此外,使用函数文字定义"类"是否有任何好处,而不仅仅是函数定义:
var Class = function () {};
Run Code Online (Sandbox Code Playgroud)
VS
function Class () {};
Run Code Online (Sandbox Code Playgroud)
谢谢!
有没有办法将更多数据传递给jQuery中的回调函数?
我有两个函数,我希望回调$.post,例如,传递AJAX调用的结果数据,以及一些自定义参数
function clicked() {
var myDiv = $("#my-div");
// ERROR: Says data not defined
$.post("someurl.php",someData,doSomething(data, myDiv),"json");
// ERROR: Would pass in myDiv as curData (wrong)
$.post("someurl.php",someData,doSomething(data, myDiv),"json");
}
function doSomething(curData, curDiv) {
}
Run Code Online (Sandbox Code Playgroud)
我希望能够将自己的参数传递给回调,以及从AJAX调用返回的结果.
我不知道这个JSFiddle有什么问题.
HTML:
<input type="button" value="test" onclick="test()">
Run Code Online (Sandbox Code Playgroud)
JavaScript的:
function test(){alert("test");}
Run Code Online (Sandbox Code Playgroud)
当我点击按钮时 - 什么也没发生.控制台说"测试未定义"
我已经阅读了JSFiddle文档 - 它说添加了JS代码并添加了<head>HTML代码<body>(所以这个JS代码早于html并且应该工作).
我写了下面的脚本,只是为了看一个变量和一个分配了函数的函数的名字发生冲突时会发生什么:
var f = function() {
console.log("Me original.");
}
function f() {
console.log("Me duplicate.");
}
f();
Run Code Online (Sandbox Code Playgroud)
我得到的输出是"我原创".为什么没有调用其他函数?
另外,如果我将原来的作业改为var f = new function() {,我会得到"我原创",然后是TypeError说object is not a function.有人可以解释一下吗?
可能重复:
Javascript:var functionName = function(){} vs function functionName(){}
这两种声明函数的方式有什么区别?
function someFunc() { ... }
var someFunc = function() { ... }
Run Code Online (Sandbox Code Playgroud)
我不是在技术意义上问.我不是问哪个更易于阅读,或者哪种风格更受欢迎.
我们有两种不同的方式在JavaScript中进行函数表达式:
命名函数表达式(NFE):
var boo = function boo () {
alert(1);
};
Run Code Online (Sandbox Code Playgroud)
匿名函数表达式:
var boo = function () {
alert(1);
};
Run Code Online (Sandbox Code Playgroud)
并且可以调用它们boo();.我真的不明白为什么/什么时候我应该使用匿名函数,何时我应该使用命名函数表达式.他们之间有什么区别?
这是一系列关于JavaScript中语法的问题.这也是社区Wiki,因此邀请每个人参与维护此列表.
Stack Overflow不允许搜索特定字符.因此,在搜索运算符和其他语法标记时,很难找到许多关于运算符和其他语法标记的问题.这也使得关闭重复更加困难.以下列表是为了解决此问题.
主要思想是在Stack Overflow上链接现有问题,因此我们更容易引用它们,而不是复制ECMAScript规范中的内容.
此外,这是PHP符号引用的公然副本.我们需要一个JS.
请帮忙.编辑并添加指向其他运算符/语法参考的链接,或者如果您无法在特定语法上找到好的问题/答案,请添加此问题的答案并将其链接