函数调用
间接调用
call方法:person(函数名).getName(方法名称). call(this指向(window或其他),参数,参数)
apply方法:person. getName. apply(this指向,[数组])
①字面式声明对象
var person ={
person. name:"xm";
person. sex:"female"; (属性:属性值)
eat:function(参数){
……
} , (方法函数用逗号隔开)
play:function(){
……
}
}
调用时,属性调用方法:person. name
函数方法调用:person. fn()
②object声明方式
...
var box=new object();
box. name=“...”;
box. func=function(){
……
}
③构造函数声明方式
function fn(){
this. name=name;
...
}
var a=new fn();
④工厂模式
在方法(function)内部创建一个object对象,赋属性,并return
function obj(a.b){
var a=new Object();
a. name=xm;
a. sex=male;
a. run=function(){
......
}
return a
}
构造函数里对象赋值给this 函数不需要返回
工厂模式给对象赋值属性时需要带上对象名 需要返回值
⑤原型模式
function a(){
}
a. prototype. name=xm;
a. prototype. 方法=function(){
执行方法代码
}
var b=new a();
(1)JSON方法
function a(){
}
a. prototype={
color:'red',
height:'5',
run:function(){
},
}
var c=new a();
⑤混合模式
function a(name,sex,height ){
this. name=name;
}
a. prototype={
run:function(){
...
}
weight:5,
}
var b=new a(xm,male,6);
⑥遍历
借用5中例子
for(var I in a){ } i为所有属性或方法
构造函数需有返回值
关键词
instanceof 变量是否是对象的实例(objext)
eg. ABC instanceof Object
callee 返回正在执行的function 对象 ,也就是function的内容(代码) [是arguments的一个属性] 指代函数本身
使用:arguments. callee
arguments 每个函数都有arguments属性
使用:arguments. length,
arguments[下标],表示参数 可遍历
arguments. callee
this 可在函数内部定义属性和方法 为全局变量等同于变量名=值
this 在构造函数内指当前对象
call apply中指第一个数
正则表达式
①字面量方式
b=esdrft;
a=/ft/;
a. test(b);返回true. false
a. exec(b);返回数组形式或null
正则表达式中修饰符:
i 忽略大小写
g 全局匹配
m 多行匹配
②构造方式
var str=...
var a=new RegExp('关键字','修饰符')
也可var a=new RegExp(变量名,'修饰符')
a. test(str);
转义字符
\ \unicode编码
\n换行
使用构造函数转义需要两个\\才可转义
字符类(匹配为 弱水三千只取一瓢饮)
①/[ ]/ 可匹配范围 eg. /a-zA-Z0-9_/=/\w/
/^a-zA-Z0-9_/=/\W/
②∧ 除了这个以外的任意字符
③汉字范围(\u4e00-\u9fa5)
④/./除了换行符以外都可匹配
/\d/=/[0-9]/ /\D/=/[^0-9]/
/\s/=空格(所有空格)
/\S/=除了空格和unicode空白以外的所有字符














网友评论