您的位置:首页 > Web前端 > JavaScript

张孝详javascript讲座笔记五

2010-03-09 22:04 309 查看
一,javascript中的对象

。对象和对象实例

1,对象是对某一类事物的描述,是抽象上的概念,而对象实例是一类事物中的具体个例。(这里对象相当于java,c++中的类的概念)

2,能够被用来创建对象实例的函数就叫做对象的构造函数,只要定义了一个对象的构造函数就等于定义了一个对象,使用new关键字和对象的构造函数就可以创建对象的实例。

var objInstance = new ObjName(传递给该对象的实际参数列表);

eg:

<script type="text/javascript">
<!--
//构造函数,定义了一个构造函数即定义了一个对象
function Person()
{
}

//创建一个对象实例
var person1 = new Person();

//为对象实例增加新的成员并赋值,以后就可以用这些成员
//用对象实例名.成员名,也可以对象实例['成员变量名']
person1.age  = 18;
person1.name = 'zxx';

alert(person1.name = ';' + person1.age);

function sayFunc()
{
   alert(peson1.name + ':' + person1.age);

}

//为对象实例增加新的方法
person1.say = sayFunc;
person1.say();
// -->
</script>




二,构造方法与this关键字

1,为一个对象实例增加的属性和方法,不会增加到同一个对象所产生的其他对象实例。(即对象实例之间是独立的,互不影响的)



2,所有的实例对象在创建后都会自动调用构造函数,在构造函数中增加的属性和方法会被增加到每个对象实例上。



3,对象实例是用new关键字创建的,在构造函数中不要有返回结果的return语句。



4,调用对象的成员方法时,需要使用“对象实例.成员方法”的形式,很显然,用作成员方法的函数被调用的时候,一定伴随有某个对象实例。this关键字代表某个成员方法执行时,引用该方法的当前对象实例,所以,this关键字只在用作对象成员方法的函数中出现。



eg:

<script type="text/javascript">
<!--
function Person(name, age)
{
 this.age = age;
 this.name = name;
 this.say = sayFunc();
}

function sayFunc()
{
  alert(this.name + ',' + this.age);

}

var person1 = new Person('张三',18);
person1.say();

var person2 = new Person('李四',20);
person2.say();
// -->
</script>




三,在函数中修改参数值的问题(也就是输出参数的情况)

1,将基本数据类型的变量作为函数参数传递的情况

<script type="text/javascript">
<!--
function changeValue(x)
{
  x = 5;
}

var x = 3;
changeValue(x);
alert(x); //x=3
// -->
</script>


2,若将对象类型的变量作为函数参数传递的情况。

<script type="text/javascript">
<!--
function Person(name,age)
{
  this.age = age;
  this.name = name;
  this.say  = sayFunc;
}

function sayFunc()
{
  alert(this.name + ':' + this.age);
}

function change(p1)
{
  p1.name = '李四';
}

var person1 = new Person('张三',18);
change(person1);
person1.say(); //此时name为'李四'
// -->
</script>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: