js有很多不同的写法,例如funame:function (){}、或者var funame = function ( ){}、或者funame(){}等等。但是每个写法所能用的地方不一样。乱用会导致报错等问题。
接下来来列一下这些写法该怎么使用。
一、
function fn1 (){
正常写法
}
正常写法。
二、
var myfun = function(){};
myfun = function(){} //全局对象Windows的一个属性,慎写
上面的代码第一行是一种声明函数的方式。意思是将右方这个函数表达式赋值给了变量myfun。
三、
var a = {
funame:function(){}
}
funame:function (){}只能写在对象内部。因为这是对象的函数。
如果变量中有多个函数可以如下这么写。
var a = { // 第一种方法
fn1:function(){} ;
fn2:function(){} ;
fn3:function(){} ;
}
var b = function () {}; //第二种方法
b.fn1 = function (){
//第一个函数
}
b.fn2 = function (){
//第二个函数
}
b.fn3 = function (){
//第三个函数
}
var c = function () { //第三种方法
return {
fn1: function() {
//第一个函数
},
fn2: function() {
//第二个函数
},
fn3: function() {
//第三个函数
}
}
}
四、
用类来实现(其中第二、三种不能混用,因为会覆盖prototype)
var a = function (){ //第一种方法
this.fn1 = function(){
// 第一个函数
}
this.fn2 = function(){
// 第二个函数
}
this.fn3 = function(){
// 第三个函数
}
}
var b = function (){}; //第二种方法
b.prototype.fn1 = function () {
// 第一个函数
}
b.prototype.fn2 = function () {
// 第二个函数
}
b.prototype.fn3 = function () {
// 第三个函数
}
var c = function () {}; //第三种方法
c.prototype = {
fn1: function (){
// 第一个函数
}
fn2: function (){
// 第二个函数
}
fn3: function (){
// 第三个函数
}
}
var d = function () {}; //第四种方法
d.prototype = {
fn1: function (){
// 第一个函数
return this;
}
fn2: function (){
// 第二个函数
return this;
}
fn3: function (){
// 第三个函数
return this;
}
}