面向对象

面向对象
  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,])
原文地址:https://www.cnblogs.com/yexiangwang/p/5205943.html