JS面向对象笔记

0、匿名函数定以后直接调用:(function(numA, numB) { alert(numA + numB); })(3,4);//弹窗7

1、js中函数就是对象,对象就是函数。arguments表示函数的参数集合

2、js中方法直接调用为函数,用new调用为对象。JavaScript中没有类的语法,是用函数闭包模拟出来的

3、js中给对象动态添加属性示例:

//定义一个函数 
function Person(){

}
//1、直接调用函数名,就只是单纯的表示调用函数 Person(); //2、是用new,表示创建了一个对象,js是动态语言,可以给对象动态添加属性和方法 var per = new Person(); per.name = "小明"; //给per对象动态添加属性name per.age = 26; //给per对象动态添加属性age per.sayHi = function() { alert("hello"); }//给per对象动态添加方法sayHi //调用per对象的属性和方法 alert(per.name);//或者alert(per['name']); per.sayHi();

 

4、js中支持this关键字,通过this关键字为对象的属性赋值

function Person(name, age) {
     this.name = name;    //给Person添加name属性,再把参数name的值赋值给该属性
     this.age = age;
     this.sayHi = function () { alert("My name is " + this.name + ", I'm old " + this.age); }
}

//调用
var per = new Person("小明", 26);
per.sayHi();//弹窗。。。。。

function Person(name, age)可以看做是声明构造函数,name、age这些属性也是动态添加的,new相当于创建了函数的一个实例

 

5、String对象方法学习

  • length属性:获取字符串的字符个数(无论中文字符还是英文字符都算1个字符)
  • charAt(index)方法:获取指定索引位置的字符(索引从0开始)
  • indexOf('字符串', startIndex)方法:获取指定字符串中第一次出现的位置,startIndex表示从第几个开始搜索
  • split('分隔符', limit): 根据分隔符将一个字符串返回为一个数组。limit表示要返回的数组的最大长度(可自定义)
  • substr(startIndex, len) : 从startIndex开始,截取len个字符
  • substring(startIndex, stopIndex): 从startIndex开始,截取到stopIndex位置(不包括stopIndex所在的字符)
  • toUpperCase(): 转换大写
  • toLowerCase(): 转换小写
  • match()、replace()、search()方法和正则表达式有关
  • .....

6、Array对象:js中Array对象就是数组,是动态数组,动态添加

示例:var names = new Array();

names[0] = "zhang";

names[1] = "mao";

names[2] = "jiang";

 

7、扩展方法:通过类对象的prototype设置扩展方法

//给string对象扩展一个方法addSign(sign);
String.prototype.addSign = function (sign) {

        if (!sign) {//如果sign是空
              sign = "^_^";
        }
        return sign + this + sign;
}

//调用测试
var str = "tan";
alert(str.addSign());  //弹出内容:^_^tan^_^
alert(str.addSign("***"));//弹出内容:***tan***

 

你可能感兴趣的:(面向对象)