javascrip基本知识总结

来源:互联网 发布:淘宝商品资质图片 编辑:程序博客网 时间:2024/04/30 01:06
//1.定义类并创建类的实例对象
function Person(){}
var p=new Person();


/*
2.定义公有属性和私有属性
定义使用属性:
1.在函数中:用var定义
2.在还是外:用对象.属性定义
定义公有属性:
1.在函数中:用this.属性定义
2.在函数外:函数名.prototype.属性名=默认值;定义


*/
function Person2(){
var name="张三";//定义属性为私有属性
this.age=100; //定义公有属性
}
var p2=new Person2();
p2.weight=180; //定义私有属性
Person2.prototype.sex="0";
Person2.aaa="bbb";


//alert(p2.weight);


var p23=new Person2();
//alert("weight="+p23.weight);
//alert("name="+p23.name);
//alert("age="+p23.age);
//alert("sex="+p23.sex);


/*
3.定义公有方法和私有方法
定义私有方法:
1.在函数中:采用 var 方法名=function(){}定义
2.在函数外:采用 对象名.方法名=function(){}定义
定义公有方法:
1.在函数中:采用 this.方法名=function(){}定义
2.在函数外:采用 对象名.prototype.方法名=function(){}定义
*/
function Person3(){
var show=function(){
alert("我是私有方法");
}
this.display=function(){
alert("我是公有方法");
}
}


var p3=new Person3();
////p3.show(); //无法调用,因为是私有的
//p3.display();


p3.eat=function(){
alert("我是私有的方法,函数外定义");
}
Person3.prototype.age=function(){
alert("我是公有方法,函数外定义");
}


var p33=new Person3();


//p3.eat();
////p33.eat();//无法调用,因为eat方法是私有的,只属于p3对象
//p33.age();
////Person3.age();//无法调用,公用方法需要用对象来调用,只有静态方法才能用函数名来调用


/*
4.静态属性和静态方法
注意:定义静态属性和方法都用函数名来定义。
调用的时候只能用还是名来调用,不能用对象调用。
*/


function Person4(){}
Person4.name="张三";
Person4.show=function(){
alert("我是静态方法,只能用函数名来调用");
}


//Person4.show();
var p4=new Person4();
//p4.show(); //出错,因为静态方法只能用函数名来调用




/*
5.构造函数(有参,无惨)
注意:函数名不要重复,因为先定义的函数永远调用不了
*/


/*
7.如何创建Javascript对象
创建Javascript对象的三种方式
1.采用 new 函数名();
2.采用 new Object();
3.采用 Json格式定义
*/


//json格式
var json={"a":"中国","b":"美国","c":"英国 "};//定义了一个json对象
var json1={1:"中国",2:"美国",3:"英国 "};
//alert(json.a);//拿到中国字符串
//alert(json["b"]);
//alert(json1[1]);


//如果想拿到所有的值,需要使用foreach循环
//for(var a in json1){
// alert(a+" : "+json1[a])
//}


/*
扩展已有对象属性和方法
*/


//例如扩展Array数组的方法
/*
Array.prototype.getMax=function(){
var max=this[0];
for(var i=0;i<this.length;i++){
if(this[i]>max){
max=this[i];
}
}
return max;
}


var arr=[12,52,3,15,66,32];
alert(arr.getMax());
*/


/*
继承

*/


function Person8(){
var name="张三";
this.age=100;
this.show=function(){
alert("我是公有方法");
}
}


function Student(){};
//希望student函数继承于Person函数
Student.prototype=new Person8();
var s=new Student();
//alert(s.name);
//alert(s.age);
//s.show();




/*
arguments对象
arguments对象:代表了一个参数对象
*/


function $(id){
//用于判断用户传递的参数个数
if(arguments.length>1){
alert("传递的参数不得大于1个");
return;
}
var p=document.getElementById(id);
if(p==null){
alert("传递id的值不对!");
}
return p;
}


function fun(){
var p=$("p",1);
alert(p.innerHTML);
}


/*
with
*/


function fun1(){
var p=$("p");
//p.style.border="1px read sode";
//p.style.color="green";
//p.style.cursor="hand";//该效果等价于如下with,相当于少写个p

with(p){
style.border="1px read sode";
style.color="green";
style.cursor="hand";
}
}




/*
foreach循环
foreach循环是对对象的属性进行循环
*/


function fun2(){
var p=$("p");
for(var a in p){
alert(a);
}
}
0 0
原创粉丝点击