No projeto anterior, eu precisava de uma função de comprar produtos de dados e pagar por eles. No começo, não ousei usar a escrita orientada a objetos. A principal razão foi que eu não esclareci minhas idéias. Além disso, os produtos de dados eram relativamente complicados naquele momento, então eu não ousei movê -los. Também procurei alguns métodos de escrita orientados a objetos on-line, resolvi as idéias e queria tentar escrevê-las sozinhas.
Em seguida, analisarei o processo de escrita orientado a objetos passo a passo. Todo o processo é dividido em:
1. Primeiro defina o formulário de dados e o conjunto total de produtos de uma lista de produtos, semelhante a:
var dados = [{nome: 'nome', unitPrice: 10, num: 2}]; var total = {type: 0, totalnum: 0, preço: 0};É óbvio que, no nome da matriz de dados, representa um único nome de produto, o UnitPrice representa um único preço unitário do produto, o número representa uma única quantidade de produto; No tipo de objeto total representa um tipo de produto, o totalnum representa uma quantidade total de produtos e o preço representa um preço total dos produtos.
2. Crie um carrinho de compra de carrinho de compras e defina suas propriedades correspondentes, como segue:
função shoppingcart (nome, unitprice, num) {this.name = name; this.unitprice = UnitPrice; this.num = num; this.info = {nome: this.name, unitprice: this.unitprice, num: this.num};}Use uma informação para salvar o nome, o preço unitário e a quantidade de um único produto e, em seguida, você precisa colocar essas informações na matriz de dados e calcular o número total de produtos no total; portanto, você precisa definir dois métodos desse objeto de função. Basta adicionar dois métodos abaixo disso.info:
this.add ();
this.gettotal ();
Aqui queremos explicar por que esses dois métodos são colocados no protótipo do objeto de função. Quando novo objeto de instanciação, você precisa adicionar informações sobre o produto e calcular o número total de produtos; portanto, não há necessidade de usar esse objeto de instanciação para chamar esses dois métodos.
Em seguida, use a propriedade Prototype do objeto e coloque todos os métodos nesta propriedade para chamá -la, como segue:
Shoppingcart.prototype = {// Adicionar produto Adicionar: function () {var _This = this; data.push (_This.info); }, // Total Product Conjunto getTotal: function () {total.type = data.length; total.Totalnum = 0; total.price = 0; for (var i = 0; i <data.length; i ++) {total.totalnum+= dados [i] .num; total.price += dados [i] .num * dados [i] .UnitPrice; }}}3. Se você adicionar, excluirá um único produto. Adicione um método para excluir o produto no atributo de protótipo. A exclusão de um produto requer excluir o produto especificado com base em um logotipo. Aqui eu o excluo através do valor do nome. No momento, é necessário um método para encontrar o produto correspondente a esse nome na matriz de data, como segue:
// excluir o produto deleto: function () {var _This = this; data.splice (_This.check (_This.name), 1); _this.gettotal ();}, // Verifique a verificação do produto: function (nome) {for (var i = 0; i <data.length; i ++) {if (name == data [i] .Name) return i; }}4. Modifique a quantidade de produtos individuais, como segue:
// Modifique a quantidade de um único produto ChanGenum: function (num) {var _This = this; if (num == 0) {_this.Delect (); retornar; } var _index = _this.check (_this.name); dados [_index] .num = num; _This.gettotal ();}Aqui você precisa passar por um parâmetro para definir a quantidade especificada de produtos.
O código geral é o seguinte:
var dados = new Array; var total = {type: 0, totalnum: 0, preço: 0}; função shoppingcart (nome, unitPrice, num) {this.name = name; this.unitprice = UnitPrice; this.num = num; this.info = {nome: this.name, unitprice: this.unitprice, num: this.num}; this.add (); this.gettotal ();} shoppingcart.prototype = {add: function () {var _This = this; data.push (_This.info); }, gettotal: function () {total.type = data.length; total.Totalnum = 0; total.price = 0; for (var i = 0; i <data.length; i ++) {total.totalnum+= dados [i] .num; total.price += dados [i] .num * dados [i] .UnitPrice; }}, Delect: function () {var _This = this; data.splice (_This.check (_This.name), 1); _This.gettotal (); }, ChanGenum: function (num) {var _This = this; if (num == 0) {_this.Delect (); retornar; } var _index = _this.check (_this.name); dados [_index] .num = num; _This.gettotal (); }, verifique: function (nome) {for (var i = 0; i <data.length; i ++) {if (name == data [i] .name) return i; }}}Os dados de inicialização dessa matriz de dados podem ser transmitidos a partir do plano de fundo, mas o formulário de dados deve ser o mesmo definido e o método Gettotal deve ser chamado para obter o conjunto total de produtos.
Finalmente, é uma nova instanciação simples, uma a uma, por exemplo:
var bens1 = novo shopping ('123', 100, 2) var bens2 = novo shopping ('456', 10, 3) var bens3 = novo shopping ('789', 1, 4) bens2.Delect (); Good33.Changenum (2) Mercadorias2 = New Shopping ('1234', 11, 1) Merós.Você pode imprimir dados e total dos resultados/(^o^)/~
O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.