书写格式:
/*apply()方法*/
function1.apply (function2,[参数1,参数2])
/*call()方法*/
function1.call (function2, 参数1,参数2,参数3.......)
意义:
两者都是用一个新对象替代一个旧对象,旧对象的this将指向新对象,即旧对象获得了新对象的方法
A.call(B,arrguments) 即对象B获得了A的方法
实际应用:
function add(a,b){
return a+b;(
}
function sub(a,b){
return a-b;
}
var m=add.call(sub,6,2)
console.log(m);// 8
var n=sub.apply(add,[6,2]);
console.log(n);// 4
两者的区别显而易见:call的参数是一个对象,加若干实参列表,apply的第一个参数和call一样,后面跟着一个参数数组;
另外,两者其实都是用来改变this的指向的:
function add(){
this.show=function(){
alert("show it");
};
function sub(){
this.hidden=function(){
alert("hidden it");
}
function buble(){
add.call(this);
sub.call(this);
}
var bub=new buble();
bub.show(); //show it
bub.hidden(); //hidden it
1,利用js的style设置元素可见和隐藏:ele.style.display="block/ none"; 或者 ele.style.visibility="visible/ hidden";
2,eval(string)函数用来计算string,里面的string一般是函数表达式;
3,ele.style.clip="rect(0 0 100% 0)"设置剪切;
4,ele.style.marginLeft设置外边距