您的位置:首页 > 其它

面向对象

2016-02-22 00:11 344 查看
面向对象
1、字符串类String
length                 获取字符串中字符的长度  str=’hello’
indexOf(string)         获取某字符在字符串中出现的位置
substr(num1,[num2]) 字符串的截取,num1开始位置,num2结束位置
toLowerCase()         转化为小写
toUpperCase()         转化为大写
replace(str1,str2)    字符串替换,str1代表要替换的字符串,str2代表替换后的字符   串

var str = 'hello,javascript';
document.write('原字符:'+str);
document.write('<hr>');
document.write('字符长度:'+str.length);
document.write('<hr>');
document.write('替换后的字符:'+str.replace('javascript','php'));

2、日期类Date
getYear()        获取年份(会有兼容性的问题),从1900年1月1日
getFullYear()    获取完整年份
getMonth()    获取月份(0-11)
getDate()         获取天数(1-31)
getDay()        获取星期几
getHours()         获取小时
getMinutes()    获取分钟
getSeconds()     获取秒数
getMilliseconds() 获取毫秒数

var date = new Date();
document.write('当前年月日:'+date.getFullYear()+'-'+(date.getMonth()+1)+'-'+date.getDate());

3、数学类 Math
ceil(数值)            获取大于或等于该数的最小整数  19.98
floor(数值)            获取小于或等于该数的最大整数
min(数值1,数值2) 返回最小数
max(数值1,数值2) 返回最大数
pow(数值1,数值2) 返回数值1的数值2次方  pow(2,2)  4
random()             返回随机数(0-1)
round(数值)        四舍五入
sqrt(数值)            返回平方根  16  4

document.write('ceil函数:'+Math.ceil(19.98));
document.write('<hr>');
document.write('min方法:'+Math.min(10,20,30));
document.write('<hr>');
document.write('随机数:'+Math.random());

2自定类的定义

面向对象过程中常用的几个关键词
alert( p.constructor );         constructor:调用对象的构造器
alert( typeof p );             typeof:类型
alert( p instanceof person );     instanceof:判断某个对象是否属于某个类

深入理解this指针
function test(){
this.i=100;
}
i=10;
test();
alert(this.i);//100;在js全局变量作用域中,this指向window对象this.i  ===  window.i

1、构造器方式
function 类名() {}
在js中是没有类的定义语句的(如class),那么在js中,当我们定义一个函数,系统会默认该函数为同名类下的构造函数,我们也可以把这个函数称之为构造器。
以上例子说明,当我们创建一个Person函数时,系统会默认认为,该函数是Person类下的构造函数,我们也可以称之为Person的构造器

实际应用:如何通过对象作为返回值,返回一个函数的四则运算?
function display(first,second) {
var count = new Object();
count.jia = first+second;
count.jian = first-second;
count.cheng = first*second;
count.chu = first/second;
return count;
}
var obj = display(200,100);
alert('相加:'+obj.jia+'相减:'+obj.jian+'相乘:'+obj.cheng+'相除:'+obj.chu);

delete方法
function Person() {}
var p1 = new Person();
p1.name = 'wangcai';
p1.age = 30;
p1.addr = '广州市';

delete p1.addr;
for(var i in p1) {
document.write(p1[i]+'<hr>');
}

原型对象:当我们加载一个函数构造器,会自动在内存创建一个对象,我们把这个对象就称之为原型对象。在Person构造中,存在一个prototype的属性,该属性指向Person的原型对象,同样,在Person原型对象中,也存在一个属性constructor,指向我们的Person构造器。
原型对象的功能?
当我们通过构造器或构造函数创建一个对象后,为其属性进行复制,当我们调用对象的某一个属性时,其首先在对象内部寻找该属性,如果寻找不到,那么将到该构造器的原型对象中去寻找
应用:
function Person() {} //类的定义
var p1 = new Person(); //对象的定义
p1.name = 'zhangsan';
p1.age = 23;
//通过原型添加的方式添加address属性
Person.prototype.address = '广州市传智播客';
//通过原型添加的方式添加speak方法
Person.prototype.speak = function() {
alert(this.name+'在说话');
}
alert(Person.prototype.constructor.prototype.constructor.prototype.constructor);

4、闭包的作用
1)可以调用局部变量
2)闭包会一直驻留在内存中
由于闭包会导致变量以及函数一直驻留在内存中,所以可能会引起内存泄漏,所以不用时,请置空:null(上题请设置test=null)

call与apply方法主要功能有两个:功能呢一样,传递参数形式不同
1、改变内部的this指向
2、执行函数
color.call(this);//color.call(this,参数1,参数2,);
size.apply(this);//size.apply(this,[参数1,参数2,])
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: