Ива*_*вац 2 javascript syntax jquery declaration function
我已经打开了jQuery 1.7.1库并想学习代码,但我发现这些函数是以奇怪的方式声明的(对我而言).例如:
show: function() {
//some code here
},
Run Code Online (Sandbox Code Playgroud)
我学会了用这种方式定义函数:
function show() {
//some code here
}
Run Code Online (Sandbox Code Playgroud)
有人可以解释一下为什么show function不是第二种方式写的(就像大多数互联网上的教程一样)?
这是因为它在一个对象内.Object Literals以这种方式定义其属性:
{
name: value,
//OR
'name': value
}
Run Code Online (Sandbox Code Playgroud)
其中value几乎可以是任何数字,字符串,函数甚至是其他对象.在JavaScript中,您还可以声明anonymous functions并将它们分配给变量.实际上,以下声明具有相同的效果:
//declares the myFunc1 function
function myFunc1() {}
//declares an anonymous function and assigns it to myFunc2
var myFunc2 = function() {};
//you can now call either like so:
myFunc1();
myFunc2();
Run Code Online (Sandbox Code Playgroud)
所以,如果我有一个对象并且我希望它的一个属性是一个函数,那么将这两个概念结合起来我会这样做:
var myObj = {
name: 'My Object',
init: function() {
return 'Initializing!';
},
version: 1.0
};
alert(myObj.init());
Run Code Online (Sandbox Code Playgroud)
然后你会得到输出:Initializing!.请务必查看有关Mozilla开发者网络的精彩文档和教程,包括他们的JavaScript教程系列
希望这可以帮助!
以第一种方式编写它实质上是将函数设置为对象的属性.
例如:
// I can create a new empty object
var myObject = {};
// or I can create a new object with a basic property
var myObject = {
color: "blue"
};
// I can also create an object with methods (like jQuery)
var myObject = {
color: "blue",
showColor: function(){
alert(this.color);
}
};
// and you can use the object like this
myObject.showColor(); // calls the showColor method and will alert "blue"
Run Code Online (Sandbox Code Playgroud)
这有助于jQuery封装,命名空间和组织代码.
这里有几个相当不错的文章:
| 归档时间: |
|
| 查看次数: |
4081 次 |
| 最近记录: |