JavaScript基本概念初级讲解论坛贴的学习记录

时间:2021-05-26

1.关于this对象

复制代码 代码如下:
view plaincopy to clipboardprint?
var obj1=new Object();
var obj2=new Object();

//给两个对象都添加属性p,并分别等于1和2
obj1.p=1;
obj2.p=2;

//给obj1添加方法,用于显示p的值
obj1.getP=function(){
alert(this.p); //表面上this指针指向的是obj1
}

//调用obj1的getP方法,结果显示为1
obj1.getP();

//使obj2的getP方法等于obj1的getP方法
obj2.getP=obj1.getP;

//调用obj2的getP方法,结果显示为2
obj2.getP();
var obj1=new Object();
var obj2=new Object();

//给两个对象都添加属性p,并分别等于1和2
obj1.p=1;
obj2.p=2;

//给obj1添加方法,用于显示p的值
obj1.getP=function(){
alert(this.p); //表面上this指针指向的是obj1
}

//调用obj1的getP方法,结果显示为1
obj1.getP();

//使obj2的getP方法等于obj1的getP方法
obj2.getP=obj1.getP;

//调用obj2的getP方法,结果显示为2
obj2.getP();


2.关于函数对象


复制代码 代码如下:
//增加函数对象方法method1
Function.prototype.method1=function(){
alert("function1");
}
function func1(a,b,c){
return a+b+c;
}
func1.method1(); //提示:function1
func1.method1.method1(); //提示:function1



//增加对象方法getType,既包括普通对象也包括函数对象
Object.prototype.getType=function(){
return typeof(this);
}
var array1=new Array();
function func1(a,b){
return a+b;
}
alert(array1.getType()); //提示:object
alert(func1.getType()); //提示:function



//func2作为一个对象传递给了func1的形参theFunc,再由func1内部进行theFunc的调用
function func1(theFunc){
theFunc();
}
function func2(){
alert("ok");
}
func1(func2); //提示:ok



//当进行函数调用时,除了指定的参数外,还创建一个隐含的对象arguments
function func(a,b){
alert(a);
alert(b);
for(var i=0;i<arguments.length;i++){
alert(arguments[i]);
}
}
func(1,2,3); //提示:1,2,3




var sum=function(n){
if(1==n)
return 1;
else
return n+arguments.callee(n-1);
}
alert(sum(100)); //提示:5050





//定义一个函数func1,具有属性p和方法A
function func1(){
this.p="func1-";
this.A=function(arg){
alert(this.p+arg);
}
}
//定义一个函数func2,具有属性p和方法B
function func2(){
this.p="func2-";
this.B=function(arg){
alert(this.p+arg);
}
}
var obj1=new func1();
var obj2=new func2();
obj1.A("byA"); //显示func1-byA
obj2.B("byB"); //显示func2-byB
obj1.A.apply(obj2,["byA"]); //显示func2-byA,其中[“byA”]是仅有一个元素的数组,下同
obj2.B.apply(obj1,["byB"]); //显示func1-byB
obj1.A.call(obj2,"byA"); //显示func2-byA
obj2.B.call(obj1,"byB"); //显示func1-byB





function sum(a,b){
return a+b;
}
alert(sum.length);

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章