在js中经常定义一个config对象来保存当前对象里面的一些临时变量;定义这个变量可以被对象中所有的属性访问到,可以避免重复,减少内存占用,统一管理;

如:

 <script>
function dateFormat(date,format){
var o = {
"M+" : date.getMonth()+1, //month
"d+" : date.getDate(), //day
"h+" : date.getHours(), //hour
"m+" : date.getMinutes(), //minute
"s+" : date.getSeconds(), //second
"q+" : Math.floor((date.getMonth()+3)/3), //quarter
"S" : date.getMilliseconds() //millisecond
}
if(/(y+)/.test(format)) format=format.replace(RegExp.$1,
(date.getFullYear()+"").substr(4- RegExp.$1.length));
for(var k in o)if(new RegExp("("+ k +")").test(format))
format = format.replace(RegExp.$1,
RegExp.$1.length==1? o[k] :
("00"+ o[k]).substr((""+ o[k]).length));
return format;
} //产品对象
/*对象内如何使用对象的属性和方法:this,对象外如何使用:先实例化,后用点语法*/
/*类 -- 抽象对象*/
function Product(name,price) {
/*属性 行为 可以为空或者给默认值*/
this.name=name
this.price=1000;
this.description = '';
this.zhekou = ''
this.sales = ''
this.produceDate
/*我们的需求:自动计算打折后的价格*/
Object.defineProperty(this, "price", {
value:5000000,
writable: false,
});
Object.defineProperty(this, "produceDate", {
get: function () {
return dateFormat(produceDate,'yyyy年MM月dd日');
},
set: function (value) {
produceDate = value;
}
});
var that = this;
//定义一个变量 :这个变量可以被对象中所有的属性访问到。。。。
/*避免重复,减少内存*/
/*统一管理*/
this.config = {
btnConfirm: document.getElementById('btn'),
btnBuy: document.getElementById('btn'),
btnAddCart: document.getElementById('btn'),
domProductName : document.getElementById('pname'),
domProductPrice : document.getElementById('pprice'),
sum : 1000,
des : document.getElementById('pdes'),
youhuijia : document.getElementById('pyouhui'),
zhekou : document.getElementById('pzhekou'),
sales : document.getElementById('psales'),
date : document.getElementById('date')
}
function bindDOM(){
/*绑定元素*/
/*通过点语法访问对象中的属性或者方法*/
that.config.name.innerHTML=that.name
that.config.price.innerHTML=that.price
that.config.des.innerHTML=that.description
that.config.youhuijia.innerHTML=that.youhuijia
that.config.zhekou.innerHTML=that.zhekou
that.config.sales.innerHTML=that.sales
that.config.date.innerHTML=that.produceDate
}
function bindEvents(){
/*绑定事件*/
that.config.btn.onclick = function(){
that.addToCart()
}
}
this.init = function(){
bindDOM()
bindEvents()
}
} //定义对象的两种方式
Product.prototype={ getPrice:function() {
return this.price
},
addToCart:function(){
alert('将物品添加到购物车')
}
} Product.prototype.buy=function(){
}
Product.prototype.addToCart=function(){ } /*搭积木开发 -- 代码可读性极高*/
window.onload=function() { /*实例化 -- 实例 -- 具体*/
//如何使用
//对象的使用必须先实例化,对象定义好之后,都是抽象的,必须实例化成具体
var iphone = new Product()
/*给对象的赋值赋值,也可以新增属性*/
iphone.name='iphone7'
iphone.price=6000
iphone.description='手机中的战斗机'
iphone.youhuijia=3000
iphone.zhekou=3.0
iphone.sales=40000
iphone.produceDate=new Date()
/*无法使用私有成员*/
// iphone.bindDOM()
// iphone.bindEvents()
/*只能使用共有成员*/
iphone.init()
} </script>

config对象的更多相关文章

  1. JSP内置对象--web安全性及config对象的使用 (了解即可)

    tomcat服务器配置的时候,在虚拟目录中必须存在一个WEB-INF文件夹,但是访问的时候并不能发现这个文件夹.改成WEB-INFs就可以看到. 所以WEB-INF文件夹不轻易让用户看到,那么其安全性 ...

  2. jsp内置对象-config对象

    1.概念:config对象中存储了一些Servlet初始化的数据结构,当Servlet初始化时,JSP容器通过config对象将这些信息传递给这个Servlet.一般在web.xml文件中配置Serv ...

  3. JSP内置对象——pageContext对象和config对象

    它对应的常用方法有: 现在,我新建一个“pageContext.jsp”页面,可以获得“session_page1.jsp”这个页面中保存的用户名: pageContext.jap: session_ ...

  4. JSP内置对象之WEB安全性及config对象

    一.WEB-INF的安全性是最高的. 在Java EE的标准中,Web目录中的WEB-INF是必须存在的,而且此文件夹的安全性是最高的,在各个程序的开发中,基本上都将一些配置信息保存在此文件夹中.在定 ...

  5. JAVA-JSP内置对象之config对象

    相关资料:<21天学通Java Web开发> config对象1.config对象可以用来获得Servlet的配置信息. 方法                               ...

  6. config对象的使用及常用方法

    config对象的使用及常用方法 制作人:全心全意 config对象主要用于取得服务器的配置信息.通过pageContext对象的getServletConfig()方法可以获取一个config对象. ...

  7. 11.page,pagcontext,config对象

  8. httpservlet在创建实例对象时候默认调用有参数的init方法 destroy()方法 service方法, 父类的init方法给子类实例一个config对象

  9. JSP内置对象page/pageContext/Config/Exception

    Config对象 config对象实是在一个Servlet初始化时,JSP引擎向它传递信息用的,此信息包括Servlet初始化时所要用到的参数(通过属性名和属性值构成)以及服务器的有关信息(通过传递一 ...

随机推荐

  1. java面试第十天

    JFC:java基础类库(具体的类可以查看API文档) 观察者模式: 事件监听者对事件源进行监听,事件源会发生某些事件,监听者需要对事件作出相应的处理. 事件监听者(Observer): 处理事件 事 ...

  2. HDU 1017 A Mathematical Curiosity (数学)

    A Mathematical Curiosity Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java ...

  3. CAS 5.1.x 的搭建和使用(三)—— 通过官方示例来熟悉客户端搭建

    CAS单点登录系列: CAS 5.1.x 的搭建和使用(一)—— 通过Overlay搭建服务端 CAS5.1.x 的搭建和使用(二)—— 通过Overlay搭建服务端-其它配置说明 CAS5.1.x ...

  4. Oracle执行SQL报错ORA-00922

    问题描述: 对Oracle数据库执行序列化脚本出错,ora-00922 missing or invalid option  #无效的选项 问题解决: 对于set define off --这个是sq ...

  5. TP3.2中filed和find()使用

    1.总结:filed和find(),进行一维数组查询指定字段时,可以进行配合使用,获得结果:key:value; 但官方没有明确指出. 2.filed和getFiled最终的结果是不一样的,一个获得的 ...

  6. ASP.NET DataBase

    //数据库操作 public class DataBase { private SqlConnection conn;//数据库连接对象 #region 打开数据库连接 private void Op ...

  7. ssh之为什么要放弃ssh?

    本文经转载, 源出处不详.https://www.cnblogs.com/hackxiyu/p/6849085.html 最近听一些朋友说,招聘面试的很多人简历都差不多,大部分人的简历上面都写了熟悉s ...

  8. HDUOJ---汉洛塔IX

    汉诺塔IX Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submi ...

  9. HDUOJ-4104 Discount

    Discount Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Su ...

  10. 打开u盘时提示是否要将其格式化的提示

    早上打开电脑插入U盘后,发现U盘报以下错误:(心中一紧,昨晚写的文档还在其中呢) 修复方法: Win+R 输入cmd 打开 ,执行命令 chkdsk G: /f 其中G为损坏区域所在盘符,即U盘在电脑 ...