js对象,函数
proto每个对象都有,prototype函数才会有
每个prototype中都有一个默认属性constructor,constructor指向原型函数
var a=new Object()
a.name=“a” 对象.属性名 正常方法
a.age=18
console. log(a.age)
a[“123”]=456 对象的属性如果特殊的话需要这样标注 对象[“属性名”]
console. log(a[“123”]) 输出456
var n=“123”
[]可以传递变量
console.log(a[n]) 输出456
delete obj.name 删除a的name属性
console.log(“name”,a) 检查a对象内是否有name属性有就返回true
var obj={ 使用对象字面量创建一个对象
name=“a”,
age=“18”
};
原型对象
function Person(){
}
Person.prototype.name=“张三”
var per=new Person()
alert(per.name) //张三
函数
函数声明
●声明一个函数
function a(){
}
●声明一个带参数的函数
function a(b,c)
{
document.write(a+b)
}
a(7,8) //输出15
var obj={
……
}
a(obj) //实参可以是一个对象也可以是一个函数
●声明一个返回类型的函数
function a(b,c)
{
var c=a+b
return c
}
var d=a(7,8) //定义一个变量接收返回值
document.write(d) 输出15
●声明一个匿名函数
var a=function(){
}
立即执行函数
(function(){
……
})()
●构造函数
function Person(name){ //构造函数是类
this.name=name; this以构造函数的形式出现时,this就是这个对象(per)
}
ver per=new Person(“张三”) //per是实例
console.log(per.name) //张三
console.log(per instanceof Person)检查per对象是否为Person类的实例,是返回true,不是返回false
●闭包
作用:让函数外部可以读取到函数内部的数据
function fn1(){
var a=1
var fn2=function(){
a++
console.log(a)
}
return fn2
}
var f=fn1()
f() //2
f() //3
f=null //释放函数的内存,外部无法在读取到a
外部函数执行了几次,内部函数就创建几次,并延长局部变量的生命周期
递归函数
递归函数使用不慎容易造成死循环,建议少用
function add(n){
if(n==1){
return1
}
return n+add(n-1)
}
var sum=add(100) //计算从1累加到100的和

浙公网安备 33010602011771号