日期:2014-05-16  浏览次数:20388 次

请教大神们一个关于js中new的用法
有如下代码:var person = new Person(); person.walk();
这里的person应该是一个对象,那Person()是方法还是个类?

------解决方案--------------------
var person = new Person(); person.walk();中的Person()是JS中常用的构造函数、原型方式或两者混合方式对象(你可以理解为其他OOP语言里的类对象),里面封装定义了一些属性和方法。要想从外部访问这些属性和方法,就需要先将这个对象实例化(我们通常俗称为new一个实例),就是那个person。而person.walk()很显然是对象Person()里的一个函数或原型(方法)。以混合方式为例:
JScript code

var Person=function(){
  //内部属性
  this.age=4;
  this.weight=20;
  
  //内部方法
  Person.prototype.walk=function(){
    alert("走啊走,乐啊乐!");
  }  
}

//外部访问(调用)
//new一个Person()函数对象的新实例
var person=new Person();
//访问其属性
alert(person.age);
//调用其方法
person.walk();