1. 一般页面开发方式 【可读性差、可维护性差】------初级开发工程师

一般页面编写方法

var name = 'iphone8'
var description = '手机中的战斗机 '
var price = 0;
var domName = document.getElementById('pname')
var domPrice = document.getElementById('pprice')
var domad = document.getElementById('p-ad')
var domadd= document.getElementById('add')
var dombuy= document.getElementById('buy') window.onload=function(){
domName.innerHTML = name
domPrice.innerHTML = price
domad.innerHTML = description
domadd.onclick=function(){
price = 7000;
domPrice.innerHTML=price;
}
dombuy.onclick=function(){
price = 7000;
domPrice.innerHTML=price;
}
}

上述代码存在的缺点

可读性差:

放在一起,如果别人拿着你的代码二次开发,读的费劲

可维护性差:

比较难维护,一旦需求变更,需要读懂整个代码,然后再修改。

如果你辞职了,别人接收你的代码,更改就更难了。

呢么怎么办呢,

下面我们讲解如何使用函数来实现面向过程编程

2. 面向过程编程【比较好的编程开发方式】------中级开发工程师

什么是面向过程编程:

面向过程就是使用函数将一个大的功能分成很多小功能,每个功能称之为一个过程,这就是面向过程编程。

我们可以考虑使用函数将原来写在一起的一坨的代码拆分成一个一个的独立的小功能

比如购买方法:

Function init()

{

GetData();

BindData();

BindEvent();

}

面向过程编写原则 – 单一功能原则 – 条理性编程法则

一般一个函数只包含某种类似的功能

我们在开发页面的时候:

一般将数据绑定相关的代码放在一个函数里面,取名:bindData()

一般将事件相关代码放在一个函数里面,取名:bindEvents()

一般定义一个init函数保存页面在初次加载的时候需要编写的代码:

我们还可以将某个功能专门用一个函数来保存,比如可以将购买产品这个功能专门放在一个函数里面,比如代码:【推荐的常用方法】

window.onload=function(){
init()
} //我们一般定义一个函数init来保存页面初始化加载的时候代码
function init() {
//其他可能的代码
bindData()
//其他可能的代码
bindEvent() } //我们一般定义一个函数保存数据绑定相关代码
function bindData(){
domName.innerHTML = name
domPrice.innerHTML = price
domad.innerHTML = description
}
// 我们一般定义函数封装页面或者某个模块的 事件
function bindEvent(){
//将产品添加到购物车事件
domadd.onclick=function(){
AddProductToCart()
}
//立即购买事件
dombuy.onclick=function(){
buyProduct()
}
} //购买产品
function buyProduct(){
} //将产品添加到购物车
function AddProductToCart(){ }

3.  面向对象编程-------高级开发工程师

什么是面向对象编程

原型对象一般用于封装组件,开发一个网页模块的模板

原型对象一般用于封装组件,封装一个功能点的属性和方法。

比如开发京东产品详细信息模块:我们定义一个产品对象,包含名称,描述,添加到购物车等属性,

复制代码

function Sprite5(options){
//函数内容部设置属性
this._init(options);
} Sprite5.prototype={
_init:function(options){ //只允许内部调用的方法【仅内部调用】
this.name=options.name;
this.age=options.age || 20;
this.color=options.color || 'red';
console.log(this.name);
},
show:function(ele){ //[可以不加参数]外部可以调用的方法不使用下划线
console.log(this.name + ele);
} };
var s5 = new Sprite5({
name:'shimilygoodabc',
age:20
});
s5.show('yang');

http://www.cnblogs.com/shimily/p/6240016.html

http://www.cnblogs.com/shimily/p/6241032.html

js【面向过程编程】、好、 【init()、 GetData()、 bindData()、bindDom、 bindEvent()、buyProduct()、AddProductToCart()】*****************的更多相关文章

  1. Day4 闭包、装饰器decorator、迭代器与生成器、面向过程编程、三元表达式、列表解析与生成器表达式、序列化与反序列化

    一.装饰器 一.装饰器的知识储备 1.可变长参数  :*args和**kwargs def index(name,age): print(name,age) def wrapper(*args,**k ...

  2. 1.面向过程编程 2.面向对象编程 3.类和对象 4.python 创建类和对象 如何使用对象 5.属性的查找顺序 6.初始化函数 7.绑定方法 与非绑定方法

    1.面向过程编程 面向过程:一种编程思想在编写代码时 要时刻想着过程这个两个字过程指的是什么? 解决问题的步骤 流程,即第一步干什么 第二步干什么,其目的是将一个复杂的问题,拆分为若干的小的问题,按照 ...

  3. Python开发基础-Day10生成器表达式形式、面向过程编程、内置函数部分

    生成器表达式形式 直接上代码 # yield的表达式形式 def foo(): print('starting') while True: x=yield #默认返回为空,实际上为x=yield No ...

  4. yield的表达式形式、面向过程编程(grep -rl 'root' /etc)

    一.yield的表达形式 def foo(): print('starting') while True: x=yield None#return 2 print('value :',x) g=foo ...

  5. python基础之生成器表达式形式、面向过程编程、内置函数部分

    生成器表达式形式 直接上代码 1 # yield的表达式形式 2 def foo(): 3 print('starting') 4 while True: 5 x=yield #默认返回为空,实际上为 ...

  6. 闭包、装饰器decorator、迭代器与生成器、面向过程编程、三元表达式、列表解析与生成器表达式

    一.装饰器 一.装饰器的知识储备 不想修改函数的调用方式,但是还想在原来的函数前后添加功能 1.可变长参数  :*args和**kwargs def index(name,age): print(na ...

  7. JS 事件循环机制 - 任务队列、web API、JS主线程的相互协同

    一.JS单线程.异步.同步概念 从上一篇说明vue nextTick的文章中,多次出现“事件循环”这个名词,简单说明了事件循环的步骤,以便理解nextTick的运行时机,这篇文章将更为详细的分析下事件 ...

  8. Golang面向过程编程-函数

    Golang面向过程编程-函数 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.什么是函数 简单的说函数的作用就是把程序里多次调用的相同的代码部分定义成一份,然后起个名字,所有的 ...

  9. 《Essential C++》读书笔记 之 面向过程编程风格

    <Essential C++>读书笔记 之 面向过程编程风格 2014-06-18 2.2 调用(invoking)一个函数 2.2.1 Pass by Reference语义 在函数sw ...

随机推荐

  1. CSS绝对定位模拟固定定位

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  2. 梦想Android版CAD控件2019.01.23更新

    下载地址:http://www.mxdraw.com/ndetail_10121.html?tdsourcetag=s_pcqq_aiomsg1. 增加异步读取CAD,DWG文件函数,MxFuncti ...

  3. vue+axios上传文件

    单独上传文件: <input class="file" name="file" type="file" accept="im ...

  4. Functional language 函数

    一.什么是函数式语言?       函数式语言一类程序设计语言,是一种非冯·诺伊曼式的程序设计语言.函数式语言主要成分是原始函数.定义函数和函数型.这种语言具有较强的组织数据结构的能力,可以把某一数据 ...

  5. 一天搞定jQuery(三)——使用jQuery完成复选框的全选和全不选

    还记得之前我使用JavaScript来实现复选框的全选和全不选效果吗?如果读者初次翻阅本文,可记得看看教你一天玩转JavaScript(七)——使用JavaScript完成复选框的全选和全不选的效果! ...

  6. gson序列化后整形变浮点问题解决方案

    字段值是json格式的字符串.我需要将这个字段反序列化为List<Map>形式,但是在反序列化后,id变为了1.0. 百度了很多然并卵,最后改用了阿里的fastjson,没问题.(jack ...

  7. mac os 10.10解决pod问题

    转一下 http://leancodingnow.com/how-to-get-cocoapods-work-on-yosemite/

  8. UVA - 10410 Tree Reconstruction(栈处理递归)

    题目: 给出一棵树的BFS和DFS序列,输出这棵树中每个结点的子结点列表.BFS和DFS序列在生成的时候,当一个结点被扩展时,其所有子结点应该按照编号从小 到大的顺序访问. 思路: 一开始是想根据BF ...

  9. 集合:ListIterator

    why ? when ? how ? what ? Java 集合框架图 有了 Iterator 为什么还要有 ListIterator 呢? Iterator 遍历的时候如果你想修改集合中的元素怎么 ...

  10. 第十三节:web爬虫之Redis数据存储

    下面仅仅展示Redis的set()集合存储,并不完整,后期会对Redis进行全面的介绍.... 此时数据已经存储到Redis当中