标签:
var stooge={ ‘first_name‘ : ‘jack‘ , ‘last_name‘ : ‘ma‘ };
for(var name in stooge){ alert(stooge.name); }
var names=[‘first_name ‘,‘last_name ‘]; for(var i=0;i<names.length;i++){ alert(stooge.names[i]); }
var add=function(var a,var b){ return a+b; };
var myObject={ var value=0; add:function(i){//在这里函数被声明为方法 return this.value+i;//这里的this就是myObject } }; myObject.add(2);//这就是函数的方法调用。通过方法调用函数中的this就是所属对象本身。
var i=100; var MyObject={ i:10, out:function (value) { var inFun = function () { alert(value + this.i); } inFun();//这里是函数调用 } } MyObject.out(10);//这里是属性(方法)调用
var i=100; var MyObject={ i:10, out:function (value) { var that=this;//在这里将方法调用传来的this先绑定到that属性上,在下面用时就不会发生上面的问题了 var inFun = function () { alert(value +that.i); } inFun(); } } MyObject.out(10);
var MyOb=function(ss){ var sta; this.sta=ss; } MyOb.prototype.fun= function () { return (this.sta); }; var oo1=new MyOb(‘oo1‘);//在new的时候会去调用MyOb函数就是这里的关键,这个函数会在背后创建一个对象赋给oo1,MyOb中的this就是这个新创建的对象,也就是oo1 var oo2=new MyOb(‘oo2‘); alert(oo1.fun());//返回oo1,因为每个sta都是保存在对应的对象中 alert(oo2.fun());//返回oo2
apply调用:这个调用容许我们手动的传递this。
var MyOb=function(){ return (this.sta);//这里的this就是app } var app={ sta:"i am ok!" } var res = MyOb.apply(app);//在这里手动将app赋值给this alert(res);
这里函数的调用并没有完,因为上面说了的除了this还有一个arguments参数。线面就看看这个参数有什么作用。
var fun= function () { var i=0; var sum=0; for(i;i<arguments.length;i++){ sum+=arguments[i]; } return sum; } alert(fun(1,2,3,4,5));
正如上面看到的,它是一个包含了传过来参数的数组(底层只是一个类数组)。
标签:
原文地址:http://www.cnblogs.com/Jc-zhu/p/4960547.html