由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - JS就应该杜绝OOP
相关主题
学FP不是为了写代码, 而是为了优秀的架构.面向数据的编程与面向对象的编程
OOP里面的Object其实是actorFP的死穴还是性能
CoffeeScript, TypeScript 能否在将来顶替 JavaScript?几年前一个科学预言python的崛起
FP更接近人的思维为什么说Javascript 是披着C 外衣的Lisp?
也谈OOP跟FP之争TypeScript看起来不错额:为Javascript增加静态类型, 类, 继承等
我来挖坑, 谈谈OOP/FP/SQL和人类思维习惯ECMAScript 6 太猛了
有没有喜欢haskell的同学Node做大系统better than Java, .NET
Why oop is bad?OO Modeling is "behavior-centric" instead of "data-centric
相关话题的讨论汇总
话题: js话题: object话题: oop话题: oo话题: java
进入Programming版参与讨论
1 (共1页)
p*****2
发帖数: 21240
1
以前总听说某某JS大牛写的code都是纯OO的,想起来就好笑
https://gist.github.com/funkaster/2992190
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
相关主题
我来挖坑, 谈谈OOP/FP/SQL和人类思维习惯面向数据的编程与面向对象的编程
有没有喜欢haskell的同学FP的死穴还是性能
Why oop is bad?几年前一个科学预言python的崛起
进入Programming版参与讨论
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吗?
相关主题
为什么说Javascript 是披着C 外衣的Lisp?Node做大系统better than Java, .NET
TypeScript看起来不错额:为Javascript增加静态类型, 类, 继承等OO Modeling is "behavior-centric" instead of "data-centric
ECMAScript 6 太猛了有人用clj写web么?比如用luminus,ring这些框架
进入Programming版参与讨论
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.

相关主题
请问个javascript object 怎么访问属性的问题OOP里面的Object其实是actor
javascript才是未来发展的方向CoffeeScript, TypeScript 能否在将来顶替 JavaScript?
学FP不是为了写代码, 而是为了优秀的架构.FP更接近人的思维
进入Programming版参与讨论
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了。

1 (共1页)
进入Programming版参与讨论
相关主题
OO Modeling is "behavior-centric" instead of "data-centric也谈OOP跟FP之争
有人用clj写web么?比如用luminus,ring这些框架我来挖坑, 谈谈OOP/FP/SQL和人类思维习惯
请问个javascript object 怎么访问属性的问题有没有喜欢haskell的同学
javascript才是未来发展的方向Why oop is bad?
学FP不是为了写代码, 而是为了优秀的架构.面向数据的编程与面向对象的编程
OOP里面的Object其实是actorFP的死穴还是性能
CoffeeScript, TypeScript 能否在将来顶替 JavaScript?几年前一个科学预言python的崛起
FP更接近人的思维为什么说Javascript 是披着C 外衣的Lisp?
相关话题的讨论汇总
话题: js话题: object话题: oop话题: oo话题: java