var user=[
 {
  name:"Michael",
  age:"24",
  sayHello:function(){
   return 0
  },
  say:function(){
   this.x=10;
   this.y=20
  }, 
  sayBB:function(){
   this.x=100;
   this.y=200
  },    
  user2:[{name:"jackson",age:"30"},{name:"jackson",age:"30"}]
 },
 {
  name:"张雷"
 }
]
这种写法可以用,但是觉得看起比较混乱。这种写法是属于正规写法,还是非正规?

解决方案 »

  1.   


    var person = function(name,age){
        this.name = name;
        this.age = age;
    }person.prototype.say = function(){
        alert(this.name);
    }var people = [new person("name1",10),new person("name2",20)];
      

  2.   

    JS 中有标准的 Class 定义格式!function ClassName(p1v, p2v) {
        this.P1Name = p1v;
        this.P2Name = p2v;
    }
    ClassName.prototype.M1Name = function(params) {
        ...
    };
    ClassName.prototype.M2Name = function(params) {
        ...
    };var instance = new ClassName(v1, v2);
      

  3.   

    这种写法缩进较多,不易阅读,最重要的是根本没有明确体现OO的核心价值,即没有类!OO 的核心价值在于 Class,既然用 OO 就应该明确声明 Class,否则就不是 OO!
      

  4.   

    这种方法挺好的,使用构造函数,那是你没有遇到this问题,等你遇到了
    你就知道这种方法好了