p*****2 发帖数: 21240 | |
e*******o 发帖数: 4654 | 2 我用Sencha,写的js 都是OO。一直没搞明白js OO到底怎么写。N中写法。 |
p*****2 发帖数: 21240 | 3
我觉得用JS就应该把OO忘掉。
【在 e*******o 的大作中提到】 : 我用Sencha,写的js 都是OO。一直没搞明白js OO到底怎么写。N中写法。
|
l**********n 发帖数: 8443 | 4 is extend not oop?
【在 p*****2 的大作中提到】 : : 我觉得用JS就应该把OO忘掉。
|
l**********n 发帖数: 8443 | 5 contrarily js is pure oop. function is first class objects. java is not pure
oop.
【在 l**********n 的大作中提到】 : is extend not oop?
|
p*****2 发帖数: 21240 | 6
什么extend?我的意思是说不要上来就像做Java的一样划分类,JS就是JS,JS里面是
object,不要上来就想定义类。把类忘掉吧。JS object就是JS object,不要受Java/C
++的影响。
【在 l**********n 的大作中提到】 : is extend not oop?
|
l**********n 发帖数: 8443 | 7 java/c++ are both retarded lan
/C
【在 p*****2 的大作中提到】 : : 什么extend?我的意思是说不要上来就像做Java的一样划分类,JS就是JS,JS里面是 : object,不要上来就想定义类。把类忘掉吧。JS object就是JS object,不要受Java/C : ++的影响。
|
p*****2 发帖数: 21240 | 8
但是还是很多人按照Java/C++的design pattern来写JS
【在 l**********n 的大作中提到】 : java/c++ are both retarded lan : : /C
|
l**********n 发帖数: 8443 | 9 think of prototype as interface and abstract class
【在 l**********n 的大作中提到】 : java/c++ are both retarded lan : : /C
|
p*****2 发帖数: 21240 | 10
这样想不就中了OO的陷阱了吗?
【在 l**********n 的大作中提到】 : think of prototype as interface and abstract class
|
|
|
n****1 发帖数: 1136 | 11 你这种说法有点让人难以接受, 我换个务实点提法:
JS应该在保持封装的前提(号称OO精髓)之下,强调以下风格:
1. 尽量做到stateless/immutable,加强程序的可预测性
2. 打破OOP的class/method的从属思维框架. 尤其是deposit的动作隶属account类这种
扭曲思维
【在 p*****2 的大作中提到】 : 以前总听说某某JS大牛写的code都是纯OO的,想起来就好笑 : https://gist.github.com/funkaster/2992190
|
p*****2 发帖数: 21240 | 12
1. 不可能,也没用
2. JS本来就打破的,JS最基本的元素就是object,连function也是object,就没有什
么class/method的说法
【在 n****1 的大作中提到】 : 你这种说法有点让人难以接受, 我换个务实点提法: : JS应该在保持封装的前提(号称OO精髓)之下,强调以下风格: : 1. 尽量做到stateless/immutable,加强程序的可预测性 : 2. 打破OOP的class/method的从属思维框架. 尤其是deposit的动作隶属account类这种 : 扭曲思维
|
P********l 发帖数: 452 | 13 ECMAScript 6: (which is the standard in near future)
https://www.sencha.com/blog/toward-modern-web-apps-with-ecmascript-6/
// ES 6
class Car extends Vehicle {
constructor(brand, color) {
super(color);
this.brand = brand;
this.wheels = 4;
}
}
【在 p*****2 的大作中提到】 : : 1. 不可能,也没用 : 2. JS本来就打破的,JS最基本的元素就是object,连function也是object,就没有什 : 么class/method的说法
|
p*****2 发帖数: 21240 | 14
Kris Zhang
4 months ago
I didn’t like something like => extends const export let;
JavaScript shouldn’t be so complicated, these features can be implemented
in external package, like coffee script.
Please keep the simplicity of JS.
这个语法确实coffeescript里已经有了。没什么特别的。
【在 P********l 的大作中提到】 : ECMAScript 6: (which is the standard in near future) : https://www.sencha.com/blog/toward-modern-web-apps-with-ecmascript-6/ : // ES 6 : class Car extends Vehicle { : constructor(brand, color) { : super(color); : this.brand = brand; : this.wheels = 4; : } : }
|
P********l 发帖数: 452 | 15 immutable (supported in ES 5)
http://ejohn.org/blog/ecmascript-5-objects-and-properties/
【在 n****1 的大作中提到】 : 你这种说法有点让人难以接受, 我换个务实点提法: : JS应该在保持封装的前提(号称OO精髓)之下,强调以下风格: : 1. 尽量做到stateless/immutable,加强程序的可预测性 : 2. 打破OOP的class/method的从属思维框架. 尤其是deposit的动作隶属account类这种 : 扭曲思维
|
P********l 发帖数: 452 | 16 这是标准的js,不是coffeescript.
【在 p*****2 的大作中提到】 : : Kris Zhang : 4 months ago : I didn’t like something like => extends const export let; : JavaScript shouldn’t be so complicated, these features can be implemented : in external package, like coffee script. : Please keep the simplicity of JS. : 这个语法确实coffeescript里已经有了。没什么特别的。
|
p*****2 发帖数: 21240 | 17
You wrote: So, would you be able to do something like “Object.seal(
document )” for a quick-n-dirty greasemonkey browser security hack? I hope
the browsers don’t let you freeze() the window object :)
And this is exactly the thing I fear the most. The specification is about
the language. The DOM behavior in regards to this will be defined by whom?
By consensus? This ‘freeze’ thing may very quickly raise some new
obstacles to everyone that tinkers with the web.
By the way, I was looking at the ‘freeze’ family with disgust for some
time, but after your comment my attitude changes to “please take this
horror away from me”.
【在 P********l 的大作中提到】 : immutable (supported in ES 5) : http://ejohn.org/blog/ecmascript-5-objects-and-properties/
|
p*****2 发帖数: 21240 | 18
coffeescript已经有了,JS加不加意义也不是很大吧?
【在 P********l 的大作中提到】 : 这是标准的js,不是coffeescript.
|
P********l 发帖数: 452 | 19 JS就应该杜绝OOP吗?
【在 p*****2 的大作中提到】 : : coffeescript已经有了,JS加不加意义也不是很大吧?
|
p*****2 发帖数: 21240 | 20
其实也不是。是要杜绝C++/Java的那些pattern。
【在 P********l 的大作中提到】 : JS就应该杜绝OOP吗?
|
|
|
g*******o 发帖数: 156 | 21 挂着马甲上来顶二爷~~~更喜欢fp方式写的js:)
【在 p*****2 的大作中提到】 : 以前总听说某某JS大牛写的code都是纯OO的,想起来就好笑 : https://gist.github.com/funkaster/2992190
|
t**********h 发帖数: 2273 | 22 这篇文章就是说不要模拟java的oo,直接用js原型写啊。动词,名词分离,动词接受名
词作为参数传进去搞
【在 p*****2 的大作中提到】 : 以前总听说某某JS大牛写的code都是纯OO的,想起来就好笑 : https://gist.github.com/funkaster/2992190
|
t**********h 发帖数: 2273 | 23 JS本身没有类的概念,只有object。是后来人模拟java写法搞出来的什么“class”吧
。其实这个所谓的“class”也还是一个object,跟其他一个样
【在 p*****2 的大作中提到】 : 以前总听说某某JS大牛写的code都是纯OO的,想起来就好笑 : https://gist.github.com/funkaster/2992190
|
p*****2 发帖数: 21240 | 24
大牛说的对,我就是这个意思。
【在 t**********h 的大作中提到】 : 这篇文章就是说不要模拟java的oo,直接用js原型写啊。动词,名词分离,动词接受名 : 词作为参数传进去搞
|
t**********h 发帖数: 2273 | 25 不是大牛,我写js写的不多。
但是我没看到多少oop写法的js啊。可能是我见识少
【在 p*****2 的大作中提到】 : : 大牛说的对,我就是这个意思。
|
p*****2 发帖数: 21240 | 26
cs里面有class
貌似写oop的文章和书都不少
【在 t**********h 的大作中提到】 : 不是大牛,我写js写的不多。 : 但是我没看到多少oop写法的js啊。可能是我见识少
|
c*********e 发帖数: 16335 | 27 dom其实就是oop的概念啊,在javascript里,什么tag都是一个object.
dom的意思,就是document object model.
【在 p*****2 的大作中提到】 : 以前总听说某某JS大牛写的code都是纯OO的,想起来就好笑 : https://gist.github.com/funkaster/2992190
|
p*****2 发帖数: 21240 | 28
我感觉object跟OOP不是一个东西
【在 c*********e 的大作中提到】 : dom其实就是oop的概念啊,在javascript里,什么tag都是一个object. : dom的意思,就是document object model.
|
g*******o 发帖数: 156 | 29 object, encapsulation这些肯定到处都要用。
个人理解二爷指的应该是避免inherit, polymorphism等等。
用现成的data strucutre(object, array) + generic function来搞定,module来做
encapsulation.
【在 c*********e 的大作中提到】 : dom其实就是oop的概念啊,在javascript里,什么tag都是一个object. : dom的意思,就是document object model.
|
c*********e 发帖数: 16335 | 30 這個。。。我还是喜欢interface,inheritance,动态绑定的。这个就让整个project
scalable.比如新加一个class来implement 一个interface.比如abstract factory模式。
【在 g*******o 的大作中提到】 : object, encapsulation这些肯定到处都要用。 : 个人理解二爷指的应该是避免inherit, polymorphism等等。 : 用现成的data strucutre(object, array) + generic function来搞定,module来做 : encapsulation.
|
|
|
p*****2 发帖数: 21240 | 31
大牛明鉴
【在 g*******o 的大作中提到】 : object, encapsulation这些肯定到处都要用。 : 个人理解二爷指的应该是避免inherit, polymorphism等等。 : 用现成的data strucutre(object, array) + generic function来搞定,module来做 : encapsulation.
|
g*******o 发帖数: 156 | 32 嗯,之前写java也一直这么搞的。
目前还在摸索fp对project的scalable有什么影响
式。
【在 c*********e 的大作中提到】 : 這個。。。我还是喜欢interface,inheritance,动态绑定的。这个就让整个project : scalable.比如新加一个class来implement 一个interface.比如abstract factory模式。
|
m******t 发帖数: 635 | 33 这个不就是clojure的路子么?不过不是用object而是用map或者record罢了,思路倒是
差不多
【在 g*******o 的大作中提到】 : object, encapsulation这些肯定到处都要用。 : 个人理解二爷指的应该是避免inherit, polymorphism等等。 : 用现成的data strucutre(object, array) + generic function来搞定,module来做 : encapsulation.
|
c*********e 发帖数: 16335 | 34 object的缺点是,一旦new一个新的object,就占用大量内存,所以会有什么connection
pool之类的出现。
【在 m******t 的大作中提到】 : 这个不就是clojure的路子么?不过不是用object而是用map或者record罢了,思路倒是 : 差不多
|
h****e 发帖数: 2125 | 35 u sure connection pool is used to save memory???
connection
【在 c*********e 的大作中提到】 : object的缺点是,一旦new一个新的object,就占用大量内存,所以会有什么connection : pool之类的出现。
|
g*****g 发帖数: 34805 | 36 It's not. And regardless of language, you'll need connection pool to avoid
constant creation of
connections, which is a performance killer.
【在 h****e 的大作中提到】 : u sure connection pool is used to save memory??? : : connection
|
p*****2 发帖数: 21240 | 37
就是这个意思。我又研究了一下,发现不少人用functional来写JS,摒弃OO的根源就是
学了Clojure了。
【在 m******t 的大作中提到】 : 这个不就是clojure的路子么?不过不是用object而是用map或者record罢了,思路倒是 : 差不多
|
l**********n 发帖数: 8443 | 38 exactly
【在 p*****2 的大作中提到】 : : 就是这个意思。我又研究了一下,发现不少人用functional来写JS,摒弃OO的根源就是 : 学了Clojure了。
|