自定义对象:
创建对象:
1. 构造函数方式创建
构造函数的定义
Function 类名(参数1,参数2)
{
This.city=参数1;
This.year=参数2;
This.show=function()
}
调用:
Var a=new 类名(1,3);
说明:
l 构造函数通过 new来调用
l 构造函数的this值为new调用时传入的对象a
l 构造函数主要完成属性的初始化,不返回值
2. JSON方式创建:
var objectA = {
name: "myName",
age: 19,
school:
{
college: "大学",
"high school": "高中"
},
like:["睡觉","C#","还是睡觉"]
}
比较:
创建对象也可以不定义构造函数直接通过 json格式创建对象,但相比起json方式,构造函数可以声明确定的类名和初始参数。感觉json更多的应该是前后台数据的传递,在js中定义还是使用构造方式比较合适
属性和方法
在对象中有四种内容:对象属性,对象函数,类属性,类函数。
类属性代表对于该类的所有对象该属性唯一或常量属性。
Circle.pi=Math.PI;
常见属性代表大部分对象该值相同,但对于特殊对象可以修改该值。如当类中的属性有一个非常常用的默认值,则可以在原型对象中定义该属性和它的默认值,然后不想使用默认值的少数对象创建自己的非共享属性。
Circle.prototype.x=0; //定义属性的默认值
c.x=5; //特殊对象可以修改该值
类函数代表不需要定义对象就可以调用的函数。
Circle.message=function() { alert(‘ssss’)}
对象属性代表每个对象值都不相同的属性。
Var c=new Circle(3); //通过构造函数创建
通过json格式创建
对象函数代表其中会用到this的函数,也即需要访问对象属性的函数,如:
Circle.prototype.area=function() { return this.pi*this.r*this.r}
访问属性:
[]和.得区别:
[]其中可以是字符串,或者包含“.“;属性名称动态实现时,如循环遍历
综合实例
//构造函数
function Circle(x,y,r) {
this.x=x;
this.y=y;
this.r=r;
}
// 静态函数
Circle.msg=function() {
return "半径是";
}
Circle.prototype.x=0; //常见属性
Circle.prototype.y=0;
//对象函数
Circle.prototype.area=function() {
return Math.PI*this.r*this.r;
}
//调用函数
function loadHandler() {
var c=new Circle(4,4,5);
alert(c.area()+" "+Circle.msg());
}
闭包的实现
模块化和减少全局变量,相当于加上了 范围修饰符
var myApplication = function(){
var name = 'Chris';
var age = '34';
var status = 'single';
function createMember(){
// [...]
}
function getMemberDetails(){
// [...]
}
return{
create:createMember,
get:getMemberDetails
}
}();
//调用方式 myApplication.get()和 myApplication.create() 就行了。
内建对象
String Math Date Array Event RegExp (正则表达式), Error(用于异常处理)
全局 RegExp 对象的属性包含最近进行查找的信息,而正则表达式对象只包含出现正则表达式匹配的信息。
数组: var a=new Array(12);Math: 包括数学中预定于的常量和功能。var scrollTop=Math.max(doc.documentElement.scrollTop, doc.body.scrollTop );通过这种方法获取 scrollTop的值,根据docType的不同,其中一个是undefinedDateNumber:JSON: parse 和 stringifyError throw new Error(200,"错误") try {} catch(e) { e.name e.message}
正则表达式:
转义字符,字符类(\w \d),重复({m,n} * ? +)只匹配一次(加?),分组(| ()),
指定匹配的位置($ ^ (?=) (?!) \b \B)标志(i,g, m)
使用:
search(返回第一个下标) replace(替换第一个或所有) split
Image对象保存图片
setTimeout(func,time_ms,[paras]) 定时执行函数