JS面向对象基础

在js中函数就是对象,对象就是函数。
方法直接调用就是函数,用new调用就是对象。
JavaScript中没有类的语法,是用函数闭包(closure)模拟出来的,下面讲解的时候还是用C#中的类、构造函数的概念,JavaScript中String、Date等“类”都被叫做“对象”,挺怪,但方便初学者理解,不严谨。JavaScript中声明类(类不是类,是对象)。

Example(写一个Person对象):

function Person()  {   }   //ok,就这么简单。

如何使用Perosn对象?

var p=new Person();// “var p”  不是   “Person p”。
p.Name=‘张三’;//动态语言,所以可以直接写。
p.Age=30;
p.SayHello=function() { alert(‘Hi~’); }
alert(p.Name);
alert(p[‘Age’]);//另外一种动态访问属性的方式。

闭包:简单的理解就是在函数(“外部函数”)中又定义了函数(“内部函数”),并且可以在“外部函数”之外,使用“内部函数”。

JavaScript同样支持this关键字

构建一个带参数的Person对象。通过this关键字为对象的属性赋值。

function Person(name, age) {
this.Name = name;
this.Age = age;
this.ShowInfo = function() {
alert('大家好,我叫' + this.Name + ',今年' + this.Age + '岁了。');
}}
var zjl = new Person('周杰伦', 20);
zjl.ShowInfo();

function Person(name,age)可以看做是声明构造函数,Name、Age这些属性是使用者动态添加的。

var p1 = Person(“周杰伦", 20);//不要丢了new,否则就变成调用函数了,p1为undefined。
new 相当于创建了函数的一个实例。

面向对象 参考文章:http://www.cnblogs.com/heros/archive/2009/09/14/1566622.html

posted @ 2012-01-31 22:36  JesseLZJ  阅读(376)  评论(0编辑  收藏  举报