为什么很少看到人用 __proto__ 直接来实现面向对象?


为了证明这种方式是可以用的, 我尝试写了个模块:
https://github.com/jiyinyiyong/proto-scope


 human = proto.as
  init: -> @name = 'human race'
  give_name: (@name) ->
  introduce: -> console.log "this is #{@name}"

tom = human.new()
tom.introduce() # => "this is human race"

man = human.as
  speak: ->
    print 'speaks by', @name
dan = man.new()
dan.give_name 'Dan'
dan.introduce() # => "this is Dan"
dan.speak() # => "speaks by Dan"

从功能上说, proto 是可行的, 在 Node 环境里也是正常能跑的,
但是为什么没人在实际使用当中这样用呢?

oop JavaScript

星辰的哀伤 11 years, 10 months ago

可以阅读下 @nightire 凡哥的博文 - 《理解 JavaScript(四)》 ,里面详细介绍了 prototype __proto__ 以及原型继承等相关问题。

古日月土也覺 answered 11 years, 10 months ago

Your Answer