j**********3 发帖数: 3211 | 1 mdn上有一段“与其他面向对象编程语言不同的是,Javascript中的普通对象和命名空
间在语言层面上没有区别。这点可能会让JavaScript初学者感到迷惑”
到底咋不同了,没懂,求牛牛详解。。。偶要补起来!
面试被问了,哭 |
l******3 发帖数: 71 | 2 js 没有class, 所以他的oo都是靠模拟 和传统oo语言相比
js里 没name space, 就只有object(就是你说的普通对象), 这个object可以模拟
namespace的功能
所以js里这“两者”没区别, 其实只有一个东西, 没两个 所以没区别
其他语言里可能这个是不同的东西 |
l******3 发帖数: 71 | 3 js的东西很多都是靠模拟,就是说靠不同的写法, 歪门邪道的技巧, 所以只是看语法
学起来 很可能摸不着门道 |
c********1 发帖数: 5269 | 4 1. Prototype-based object-oriented programming
Prototypes
JavaScript uses prototypes where many other object-oriented languages
use classes for inheritance. It is possible to simulate many class-based
features with prototypes in JavaScript.
2 JavaScript is almost entirely object-based. JavaScript objects are
associative arrays |
j**********3 发帖数: 3211 | |
a********5 发帖数: 1631 | 6 具体到NAMESPACE, JS没有NAMESPACE的概念。对象本身就是NAMESPACE。
宽泛到OO,JS的OO是用PROTOTYPE,而不是传统意义上的继承。很多JAVA/C++的OO的实
现搬到JS上用PROTOTYPE来做就近似黑魔法。。
【在 j**********3 的大作中提到】 : mdn上有一段“与其他面向对象编程语言不同的是,Javascript中的普通对象和命名空 : 间在语言层面上没有区别。这点可能会让JavaScript初学者感到迷惑” : 到底咋不同了,没懂,求牛牛详解。。。偶要补起来! : 面试被问了,哭
|
j**********3 发帖数: 3211 | 7 that's why i feel hard... actually 我面试的时候就提到这点了。
【在 l******3 的大作中提到】 : js的东西很多都是靠模拟,就是说靠不同的写法, 歪门邪道的技巧, 所以只是看语法 : 学起来 很可能摸不着门道
|
k***a 发帖数: 1199 | 8 coffescript很好
【在 a********5 的大作中提到】 : 具体到NAMESPACE, JS没有NAMESPACE的概念。对象本身就是NAMESPACE。 : 宽泛到OO,JS的OO是用PROTOTYPE,而不是传统意义上的继承。很多JAVA/C++的OO的实 : 现搬到JS上用PROTOTYPE来做就近似黑魔法。。
|