转载请标明是引用于 http://blog.csdn.net/chenyujing5678
欢迎拍砖!
JS中没有类的语法,是用函数闭包(closure)模拟出来的;
下面讲解的时候还是用C#的类、构造函数的概念,JS中的String、Date等“类”都被叫做“对象”。(类不类,是对象)。
1、我们通过声明一个函数模拟类。
// 声明一个函数模拟类
function Person(name, age){
this.Name = name; // 动态增加一个Name属性
this.Age = age;
// 匿名函数
this.SayHello = function(){
alert(this.Name);
}
}
var p1 = new Person("tome", 20);
p1.SayHello();
一般我们自己写JS很少写一个类,一般是调用别人的类;但也可以自己实现,且模拟出类的继承。
2、我们也可以在函数外动态增加一个属性:
// 声明一个函数模拟类
function Person(name, age){
this.Name = name; // 动态增加一个Name属性
this.Age = age;
// 匿名函数
this.SayHello = function(){
alert(this.Name);
}
}
// 只有new才能像函数一样用, var p1 = Person("tome", 20);这样的p1是undefined的
var p1 = new Person("tome", 20);
p1.Gender = "男"; // 在函数外动态增加属性
p1.SayHello();
alert(p1.Gender);
注意:上面的new是不能去掉的,如果去掉那么p1就成为了undefined的了。