1.函数的方法
call() apply() bind()
1- 重定义this
2- bind() 此方法使用时必须添加小括号 bind(重定义的this)()
var name = "小张",age=17;
var obj = {
name:"小王",
// 对象属性值中的this代表 window
age1:this.age,
myFun:function(fm,t){
// 对象方法中的this代表当前本对象 obj
console.log(this.name+"年龄"+this.age1+"来自"+fm+"去往"+t)
}
}
var db = {
name:"西亚",
age1:23
}
// obj.myFun()
//1- call 支持字符串 数组作为参数
obj.myFun.call(db,["东土大唐","西天取经"],["女儿国"])
// 2- apply 支持数组作为参数
obj.myFun.apply(db,["东土大唐","西天取经"])
// 2- bind() 此方法使用时必须添加小括号 bind(重定义的this)()
obj.myFun.bind(db,"东土大唐","西天取经")()
//3- 支持字符串 数组作为参数
obj.myFun.bind(db,["东土大唐","西天取经"],["女儿国"])()
2.arguments
在调用函数的时候,浏览器传递进来两个参数
1- 连接上下文的this
2- 封装实参的对象 arguments
arguments 是一个类数组对象
可以通过索引操作数据,并且可以获取长度 实参
callee 这个属性对应的是一个对象,当前函数
function fun(){
console.log(arguments)
console.log(Array.isArray(arguments))
console.log(typeof arguments)
console.log(arguments instanceof Array)
console.log(arguments[0])
console.log(arguments.length)
console.log(arguments.callee == fun)
return 123
}
fun(111,2,3,4,5,6,7,8,9)
3.包装类
基本数据类型
boolean
number
string
null
undefined
引用数据类型
object
js中提供了三个包装类,都是通过基本数据类型转为对象
String()
可以将基本数据类型字符串转为String对象
Number()
可以将基本数据类型数字转为Number对象
Boolean()
可以将基本数据类型boolean转为Boolean对象
// 创建一个number对象
var num = new Number(3)
var num2 = new Number(3)
console.log(num,num2)
num.age = 20;
console.log(num)
console.log(num.age)
// new Array
// new Function
// new Object