关于一些疯狂的javascript语法和限制的问题

关于一些疯狂的javascript语法和限制的问题,javascript,oop,syntax,Javascript,Oop,Syntax,所以我对javascript非常了解,但我不确定这一点 很难解释,所以我将展示: var view = new View(); view.rating = 4.5; 是否需要调用view.rating作为一个函数来稍微操纵DOM并将其设置为5 因此,我们认为: View.prototype = { rating : function() { $('div.stars').width(4.5); } } 我知道有一些变通方法,使用的不是view.rating=5。我对那

所以我对javascript非常了解,但我不确定这一点

很难解释,所以我将展示:

var view = new View();

view.rating = 4.5;
是否需要调用view.rating作为一个函数来稍微操纵DOM并将其设置为5

因此,我们认为:

View.prototype = {

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

}
我知道有一些变通方法,使用的不是view.rating=5。我对那些不感兴趣。我想知道是否有一种方法可以设置它来维护view.rating=5。JS本质上是直接从PHP来的,我不想让PHP陷入匿名函数的泥潭。。like view.rating=函数{…}

谢谢! 马特·米勒(Matt Mueller)

否。编辑:至少不是在所有常见浏览器的实现上

Javascript中没有任何东西可以重载=运算符

编辑:


我不确定你是否清楚这一点。如果您通过原型或不通过原型对函数进行评级,您应该像view.rating5一样调用它,它可以更新DOM或执行任何操作。

大多数JavaScript实现不支持创建getter/setter属性,因此它在web上不会非常有用。然而,也有一些实现可以做到这一点。以下是Mozilla实现中的一个示例:

编辑:让我澄清一下,编写getter/setter比使用getFoo/setfooo样式属性更具语法优势。这是为了开发商的利益。依我看,对于一个主要由于IE缺乏支持的网络应用来说,目前还不太现实。虽然IE的市场份额正在下降,但这取决于你在一个广泛公开的应用程序中的人口统计数据,此时你的许多访问者仍然不会得到他们的支持

更多您感兴趣的链接:


是的。我只是在尝试创建自定义Smarty模板功能时遇到了一些严重的限制,同时我也希望降低服务器的压力。PHP有所有这些疯狂的操作方式,我想知道Javascript是否也有一些小技巧。谢谢每天学习新的东西!谢谢除IE之外,所有JS实现都支持getter和setterengine@olliej:IE8支持DOM对象的getter和setter,但仅使用新的ECMAScript 3.1语法,其他浏览器尚不支持这种语法。