一个对象,两种方法

时间:2011-02-22 10:06:09

标签: javascript

我试着理解为什么会这样做

// ............................................. ..........

var hero = { 
  name: 'Joni', 
  type: 'blond',
  sayName: function() { 
    return this.name; 
  } 

  sayType: function() { 
    return this.type; } 
} 
document.write( hero.sayName()+ "</br>"); 
document.write( hero.sayType());

// ............................................. ..........

但这不起作用

// ............................................. ..........

var hero = { 
  name: 'Joni', 
  type: 'blond',
  sayName: function() { 
    return this.name; 
  } 

  sayType: function() { 
    return this.type; 
    } 
} 
document.write( hero.sayName()+ "</br>"); 
document.write( hero.sayType());

// ............................................. ..........

感谢

3 个答案:

答案 0 :(得分:1)

您在“var hero”语句末尾缺少分号。你也遗漏了其他一些逗号。

var hero = { 
  name: 'Joni', 
  type: 'blond',
  sayName: function() { 
    return this.name; 
  }, // <<--- You missed the comma here

  sayType: function() { 
    return this.type; 
    } 
};  // <<--- You missed the semi colon!
document.write( hero.sayName()+ "</br>"); 
document.write( hero.sayType());

展望未来,只需通过JSLINT运行代码即可完全避免这些问题。转到jslint.com,粘贴你的代码,你会看到你的答案.//

答案 1 :(得分:0)

区别在于第二个块中的saytype函数之前的输入。除了逗号之外我没有理由说它不起作用。

答案 2 :(得分:0)

您在sayName函数后缺少逗号。我看不出两个代码块之间的区别,除了一个新的行字符(这没有什么区别)。两个代码块都缺少这个逗号。

var hero = { 
  name: 'Joni', 
  type: 'blond',
  sayName: function() { 
    return this.name; 
  },// <---  Missing Comma

  sayType: function() { 
    return this.type; 
    } 
} 
document.write( hero.sayName()+ "</br>"); 
document.write( hero.sayType());