关于一些疯狂的JavaScript语法和约束的问题

时间:2009-08-08 07:25:57

标签: javascript oop syntax

所以我很熟悉javascript,但我不确定这个。

难以解释所以我只是展示它:

var view = new View();

view.rating = 4.5;

有没有将view.rating作为一个函数调用DOM来操作DOM并将该等级设置为5?

所以在视图中:

View.prototype = {

  rating : function() {
     $('div.stars').width(4.5);
  }

}

我知道有一些解决方法,使用“view.rating = 5”之外的其他内容。我对那些不感兴趣。我想知道是否有办法设置这个维护view.rating = 5.这是即将到来的JS本质上直接来自PHP,我不想让PHP陷入匿名函数..就像view.rating = function(){...};

谢谢! 马特穆勒

2 个答案:

答案 0 :(得分:4)

没有。 (编辑:至少不是所有普通浏览器的实现)

Javascript中没有任何内容等同于“重载=运算符”。

修改

我不确定你是否清楚这一点。如果你使rating成为一个函数(无论是否通过原型),你应该像view.rating(5)一样调用它,它可以更新DOM(或做任何事情)。

答案 1 :(得分:3)

JavaScript的大多数实现都不支持创建getter / setter属性,因此它在Web上不会非常有用。但是有一些实现可以做到。这是Mozilla实现的一个例子:

编辑:让我澄清一下,编写getter / setter是使用getFoo()/ setFoo(foo)样式属性的语法糖。这是为了开发人员的利益。 IMO,对于一个网络应用程序(主要是因为IE缺乏支持),它还不太现实。虽然IE市场份额正在下降,但根据您在广泛公开的应用中的人口统计数据,此时很多的访问者仍然无法获得支持。

您感兴趣的更多链接: