- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这不是我遇到的具体问题,更多的是我可以做出的选择,但我确实相信这个问题与 SO 相关,因为可能有一个“正确的”OO 答案,以及性能 yield /损失做这个。我正在使用 AS3,但我相信这个问题与其他基于类/oo 的语言相关。
我试图找到一种方法,为具有不同参数的类提供 Java 风格的多个构造函数(这是另一个故事),但这让我思考 jQuery,以及它如何通过让函数在可能的情况下返回来链接函数他们被调用的对象。
它并不总是能用 jQuery 生成最简洁的代码,我想这是与经典方法不同的做法,但我想知道对于这种方法是否有什么可说的:
//execute chains of methods on creation, as each returns its parent class (person)
var person:Person = new Person().male('a male', 25).wakeUp().lookAround();
//Or later
person.getUp().rubEyes();
...以及让成员函数全部返回通常不需要的对象是否代表任何重大浪费/性能问题?
这似乎是保存代码并以更易读的方式表示函数序列的好方法,我想知道是否有人可以提供帮助。
提前致谢
最佳答案
是的,person.getUp().rubEyes()
有一些话要说:从语义上来说它看起来更好。仅此而已。
new Person().male('amale', 25)
是一个完全不同的情况。 Male 不是像 getUp 这样的动词。我更喜欢:new Person({ sex: 'male',age: 25})
。
当不使用返回的对象时,性能是否会受到重大影响?不会。首先,大多数 (jit) 编译器都足够聪明,能够发现返回的对象从未被使用过,因此根本不会执行这些指令。这是一种称为死代码消除的优化策略。其次,即使编译器不会执行此优化,那么我们仍然在谈论一些微不足道的时钟周期。没什么你应该担心的。一般来说,我建议您根本不要担心此类性能问题。最好将优化工作集中在编译器无法帮助您的代码部分(即设计、算法等)。
享受链接的乐趣!
关于jquery - 在 AS3 和其他基于类的语言中编写 jQuery 风格的函数链,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14792893/
我是一名优秀的程序员,十分优秀!