Cada objeto de función tiene un atributo de longitud, lo que indica el número de parámetros que la función espera recibir.
La copia del código es la siguiente:
<html>
<Evista>
<script type = "text/javaScript">
var add = function (num1, num2, num3) {
alerta (num1+num2+num3);
}
alerta (add.length);
</script>
</ablo>
<Body>
</body>
</html>
Sobre la creación de JS orientado a objetos,
Objetivo:
Construir un objeto de pedido.
Contiene tres atributos: fecha, cantidad, remitente
Contiene un método: String String: "xx envió un pedido con una cuota de: xxxx yuan en xxx-xx-xx"
Un método de fábrica
La copia del código es la siguiente:
<script type = text/javaScript>
/*
Método de fábrica: devuelva objetos utilizando métodos, no es necesario generar nuevos objetos a través de nuevos al usarlos.
*/
función createOrder () // También puede crear un método de fábrica con parámetros para inicializar los datos de los objetos basados en los parámetros aprobados.
{
orden var = nuevo objeto ();
orden.date = "1990-1-1";
orden.price = "3200";
orden.name = "Vince Keny";
orden.show = function () // Si coloca el método de exposición en la fábrica, creará un método de espectáculo para cada instancia por separado. Despertar recursos es la desventaja de este patrón.
{
alerta (this.name + "en" + this.date + "orden con una cuota de" + this.price + "rmb.")
}
orden de devolución;
}
// Devuelve el objeto usando el modo de fábrica:
orden var = createOrder ();
// También se puede usar de esta manera, transformando el patrón de fábrica en un "pseudo-constructor". Debido a que se usa nuevo en la fábrica, el nuevo operador al crear el objeto será ignorado.
Var orden2 = new CreateOrder ();
orden.show ();
orden2.show ();
</script>
Dos método de constructor
La copia del código es la siguiente:
/*
El método del constructor y la declaración del método son los mismos que el método de fábrica, y hay los mismos problemas y se pueden extraer. La diferencia es que esto se usa para declarar atributos.
Y debe usar el nuevo operador para generar una instancia.
*/
orden de funciones ()
{
this.Date = "1990-1-1";
this.price = "3200";
this.name = "Vince Keny";
this.show = function ()
{
alerta (this.name + "en" + this.date + "orden con una cuota de" + this.price + "rmb.")
}
}
Var orden = nuevo orden ();
orden.show ();
Tres métodos prototipo
La copia del código es la siguiente:
/*
Método prototipo: use prototipo
*/
orden de funciones ()
{}
Orden.prototype.date = "1990-1-1";
Orden.prototype.price = "3200";
Orden.prototype.name = "Vince Keny";
Orden.prototype.show = function ()
{
alerta (this.name + "en" + this.date + "orden con una cuota de" + this.price + "rmb.")
}
Var orden = nuevo orden ();
orden.show ();
Cuatro método de constructor/prototipo híbrido
La copia del código es la siguiente:
/*
Método de constructor/prototipo híbrido: inicialice los campos de atributos utilizando el método del constructor y use el método prototipo para construir métodos.
*/
orden de funciones ()
{
this.Date = "1990-1-1";
this.price = "3200";
this.name = "Vince Keny";
}
Orden.prototype.show = function ().
{
alerta (this.name + "en" + this.date + "orden con una cuota de" + this.price + "rmb.")
}
Var orden = nuevo orden ();
orden.show ();
Cinco métodos híbridos dinámicos
La copia del código es la siguiente:
/*
Método de mezcla dinámica: la diferencia entre el método de mezcla radica en la posición de declarar el método. Poner la vida del método dentro del constructor está más en línea con el objeto orientado.
*/
orden de funciones ()
{
this.Date = "1990-1-1";
this.price = "3200";
this.name = "Vince Keny";
if (typeof order._initialized == "Undefinado")
{
Orden.prototype.show = function ().
{
alerta (this.name + "en" + this.date + "orden con una cuota de" + this.price + "rmb.")
};
Orden._initialized = true;
}
}
function car (scolor, idoors) {
var otempcar = nuevo objeto;
otempcar.color = scolor;
otempcar.doors = idooes;
otempcar.showColor = function () {
alerta (this.color)
};
regresar otempcar;
}
var oCar1 = auto nuevo ("rojo", 4);
var oCar2 = auto nuevo ("azul", 3);
Ocar1.showColor (); // sale "rojo"
Ocar2.showColor (); // sale "azul"