在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. php-fpm 日志

    1.php-fpm 错误日志 #默认位置 安装目录下的 log/php-fpm.log error_log = log/php-fpm.log #错误级别 alert(必须立即处理), error(错 ...

  2. RHEL和Centos常用版本

    学而优则仕,思则进步也Q Redhat: http://pan.baidu.com/s/1qXKRqqS Centos: http://pan.baidu.com/s/1o8RrjXw

  3. Android API之android.os.Parcelable

    android.os.Parcelable Interface for classes whose instances can be written to and restored from a Pa ...

  4. Spring Framework Ecosystem – Introduction to Spring Projects

    来自于:http://springtutorials.com/spring-ecosystem/ Hello and Welcome to Spring Tutorials Blog! Is it f ...

  5. 关于iOS Category实现添加属性及成员变量

    iOS分类: 很多说法是只能添加方法,而不能添加成员变量或属性. 有些人可能知道,这种说法是不严谨的,并不是绝对不能添加变量. 解释如下: 我们知道在一个类中用@property声明属性,编译器会自动 ...

  6. java多线程(五)之总结(转)

    引 如果对什么是线程.什么是进程仍存有疑惑,请先Google之,因为这两个概念不在本文的范围之内. 用多线程只有一个目的,那就是更好的利用cpu的资源,因为所有的多线程代码都可以用单线程来实现.说这个 ...

  7. HDUOJ----(1084)What Is Your Grade?

    关键是自己没有读懂题目而已,不过还好,终于给做出来了...... What Is Your Grade? Time Limit: 2000/1000 MS (Java/Others)    Memor ...

  8. c# 网站生成静态页面

    在一些需要经常更新页面数据的网站中,一般访问量不是很大的都直接发布的是带后台代码,每次访问都是有数据库交互的.但是一旦访问量增加了,那么这些服务器开销变成本就要考虑进来了,像一些文章,后台编辑后,文章 ...

  9. RabbitMQ概念及环境搭建(四)RabbitMQ High Availability

    #################################################### RabbitMQ High Availability #################### ...

  10. 学习WCF笔记之二

    一.学习文章http://www.cnblogs.com/iamlilinfeng/archive/2012/09/25/2700049.html 二.步骤 学习WFC,按照大神的文章一步步学习,不过 ...