Cada objeto de função possui um atributo de comprimento, indicando o número de parâmetros que a função espera receber.
A cópia do código é a seguinte:
<html>
<head>
<script type = "text/javascript">
var add = function (num1, num2, num3) {
alerta (num1+num2+num3);
}
alerta (add.length);
</script>
</head>
<Body>
</body>
</html>
Sobre a criação de JS orientado a objetos,
Alvo:
Construir um objeto de ordem.
Contém três atributos: data, quantia, submissor
Contém um método: Display String: "XX enviou um pedido com uma cota de: xxxx yuan em xxx-xx-xx"
Um método de fábrica
A cópia do código é a seguinte:
<Script Type = Text/JavaScript>
/*
Método da fábrica: retornar objetos usando métodos, não há necessidade de gerar novos objetos através de novos ao usá -los.
*/
function createOrder () // Você também pode criar um método de fábrica com parâmetros para inicializar os dados do objeto com base nos parâmetros passados.
{
var ordem = new Object ();
ordem.date = "1990-1-1";
ordem.price = "3200";
ordem.name = "Vince Keny";
order.show = function () // Se você colocar o método de show na fábrica, criará um método de show para cada instância separadamente. Desperdiçar recursos é a desvantagem desse padrão.
{
alerta (this.name + "em" + this.date + "ordem com uma cota de" + this.price + "rmb.")
}
ordem de retorno;
}
// retorna o objeto usando o modo de fábrica:
var ordem = createOrder ();
// Também pode ser usado dessa maneira, transformando o padrão de fábrica em um "pseudo-construtor". Como o novo é usado na fábrica, o novo operador ao criar o objeto será ignorado.
var order2 = new CreateOrder ();
order.show ();
order2.show ();
</script>
Dois métodos construtores
A cópia do código é a seguinte:
/*
O método do construtor e a declaração do método são os mesmos do método da fábrica, e existem os mesmos problemas e podem ser extraídos. A diferença é que isso é usado para declarar atributos.
E você precisa usar o novo operador para gerar uma instância.
*/
ordem de função ()
{
this.date = "1990-1-1";
this.price = "3200";
this.name = "Vince Keny";
this.show = function ()
{
alerta (this.name + "em" + this.date + "ordem com uma cota de" + this.price + "rmb.")
}
}
var pedidos = new Order ();
order.show ();
Três métodos de protótipo
A cópia do código é a seguinte:
/*
Método do protótipo: use protótipo
*/
ordem de função ()
{}
Order.prototype.date = "1990-1-1";
Order.prototype.price = "3200";
Order.prototype.name = "Vince Keny";
Order.prototype.show = function ()
{
alerta (this.name + "em" + this.date + "ordem com uma cota de" + this.price + "rmb.")
}
var pedidos = new Order ();
order.show ();
Quatro Método Híbrido Construtor/Protótipo
A cópia do código é a seguinte:
/*
Método do construtor/protótipo híbrido: inicialize os campos de atributo usando o método do construtor e use o método do protótipo para construir métodos.
*/
ordem de função ()
{
this.date = "1990-1-1";
this.price = "3200";
this.name = "Vince Keny";
}
Order.prototype.show = function ().
{
alerta (this.name + "em" + this.date + "ordem com uma cota de" + this.price + "rmb.")
}
var pedidos = new Order ();
order.show ();
Cinco métodos híbridos dinâmicos
A cópia do código é a seguinte:
/*
Método de mistura dinâmica: a diferença entre o método de mistura está na posição de declarar o método. Colocar a vida do método dentro do construtor está mais alinhado com os objetos orientados a objetos.
*/
ordem de função ()
{
this.date = "1990-1-1";
this.price = "3200";
this.name = "Vince Keny";
if (typeof order._initialized == "indefinido")
{
Order.prototype.show = function ().
{
alerta (this.name + "em" + this.date + "ordem com uma cota de" + this.price + "rmb.")
};
Ordem._initialized = true;
}
}
Carro de função (Scolor, Idoors) {
var otempcar = novo objeto;
otempcar.color = scolor;
otempcar.doors = odooes;
otempcar.showcolor = function () {
alerta (this.color)
};
retornar otempcar;
}
var ocar1 = novo carro ("vermelho", 4);
var ocar2 = novo carro ("azul", 3);
ocar1.showcolor (); // Saídas "Vermelho"
ocar2.showcolor (); // saídas "azul"