黑马程序员_javascript 函数和对象基础知识

来源:互联网 发布:淘宝家具安装工 编辑:程序博客网 时间:2024/04/27 13:53

------- android培训、java培训、期待与您交流! ----------

以下仅为个人平时学习笔记,可能有有错误的地方,希望有看到者提出来,共同讨论,谢谢!

1.当script标签中定义了src属性连接了一个指定的js文件后,那么,script标签内的代码就不会执行了.

2.其实,在javascript中,函数本身就是一个对象.函数名就是这个对象的引用.例如:
func(){...}
func对应函数实体地址.打印的话,会将"func(){}"打印出来,相当于字符串文本.

3.动态函数
var show=new Function("x,y","var sum=x+y;return sum;");
var sum = show(4,5);
显示结果sum为9.

相当于:
function show(x,y)
{
  var sum = x+y;
  return sum;
}

4.匿名函数:其实就是函数的简写形式.

var method1 = function()
{
   alert("Haha");
}

method1();//调用该匿名函数(函数看成对象了);

5.函数可以用于事件处理.
function func()
{
   alert("Haha");
}

window.onload = func;
//简写格式如下:

window.onload = function()//匿名函数
{
   alert("Haha");
}

5.arguments 获得参数实际传入的参数。arguments.length、arguments[i];

****************************************************************************

6.javascript中的数组,是javascript中的唯一容器.
 a.什么类型都可以存储;(但是建议存储数据时,按照同一类型存储,取出操作时,相对不容易出错.)
 b.该数组容器的长度是可变的,集数组与及集合于一身(不存在角标越界,
 中间原来不存在元素为undifined);


var arr = [];//定义了一个javascript数组.还可以:
var arr = ["aaa","bbb"];
var arr = new Array(3); arr[4] = "abc";//其他角标均为未定义
还可以:var arr = ["aaa",12,true];

********************************javascript对象********************************************
1.可以使用num.toString(16)方法将10进制的num转换为16进制
2.还可以使用parseInt("123a",16)将123a以16进制为基数进制转换为十进制int型.

********************************javascript自定义对象*********************************************
1.javascript自定义对象:其实就是利用javascript中已有内容,模拟面向对象。
例如:
function Person(){}//javascript中方法就是对象
var p = new Person();//这就是对象
//给对象添加属性
p.name="zhangsan";
p.age=23;
//添加行为
function mthod1()
{
   alert();
}
p.show = method1;//在p对象中添加了一个属性show,该show的值为method1的地址值,也就是show和method1指向了同一个函数对象。
p.show();//调用该行为

################################################################
一个较为完整的例子如下:

function Person(name,age)
{
 this.name = name;
 this.age = age;
 
 this.setName=function(n)
 {
  this.name = n;
 }
 
 this.getName = function()
 {
  return this.name;
 }
 
 this.showName=function()
 {
  alert(this.name);//此处若为name的话,为初始化时候传进来的name
 }
}

var p = new Person("lisi",45);
p.setName("KKKK");
p.showName();

—————————————————————————————————————————————

1.为了方便使用某些方法,并且它们都是进行同一类操作的工具方法,会被多次调用,
所以最好将它们封装到一个对象中。这样找到了该对象就就具备了这些工具方法。

2.封装方法到对象中:(为了方便还可以使用匿名方法)

function arrTools(){}

var arrtools = new arrTools();
arrtools.getMax = getMax;//指向该方法

function getMax(arr)//参数为数组
{
   .....
}

3.给数组原型对象添加新功能:
Array.prototype.getMax = function()
{
  var max = 0;
  for(var x=1;x<this.length;x++)
  {
     if(this[x]>this[max])
       max = x;
  }
  return this[max];
}

*******************************************************************
1.javascript可以通过原型prototype完成继承。
2.prototype代表一个对象的引用,所以原型必须指向一个对象(继承时)。
3.子对象可以复写方法。

**********************javascript中的特殊语句**********************************************
1.for in循环:用于遍历数组和对象的循环语句。相当于java中的增强for循环。
例如:for(变量 in 对象);for(x in Person){};

例子一:遍历对象
function Person()
{
    this.name="lisi"
    this.age = 33;
    this.getName=function()
    {
 alert(this.name+"==="+this.age);
    }
}

var p = new Person();
alert(p["name"]);//也是可以的,但是必须有“”
for(x in p)
{
    alert(x);//分别先后打印name,age,getName
    alert(x+":"+p[x]);//分别打印name:lisi,age:33,getName:function(){...}
}

例子二:遍历数组
var arr = ["aa","bb","cc"];
for(x in arr)
{
   alert(x);//打印的为数组的角标
}

2.with语句(好处就是省略了重复写"date")

with(对象)//确定了该对象的范围,在该范围内可以直接调用该对象的方法、属性
{
  ....
}

var date = new Date();

alert(date.getMonth()+“月"+date.getDate()+"日");
相当于:
with(date)
{
    alert(getMonth()+"月"+getDate()+"日");
}

原创粉丝点击