具名函数的四种调用方式(3)

这里把函数名首字母大写了,让它符合java类命名规范。

 

/**
 * 定义一个函数Car
 */
function Car(color,doors) {
	
	var car = {};
	car.color = color;
	car.doors = doors;
	car.msg = function(){ 
		alert("This is a " + this.color + " car, there are " + this.doors + " doors." );
	}
	
	return car;
}

 

看起来怪怪的,Car明明是一个类啊,怎么也不像之前的函数调用。和文章标题似乎有些不一致了。但我们的确可以用()来调用它。当然也可以用new来调用它。用new方式则让它更像java的创建对象方式。

 

//方式1
var c1 = Car('red',2);
c1.msg();

//方式2
var c2 = new Car('black',4);
c2.msg();
 

嗯。这种方式在一些js库中也能见到,如mootools.js中的一个很重要的函数Native,返回值是一个函数(类)。mootools core中的Class类就是Native函数返回的。var Class =  new Native({..});当然也可以不用new而直接采用()调用。

 

 

 

 

你可能感兴趣的:(mootools)