三人称単数メソッド

なんとなくだけど、何かをする系のメソッドを使った文、例えばparentNode.appendChild(newChild)だったら、これに対応する英文というのは Hey, you "parentNode"! Append "newChild" to yourself as a child! みたいな「命令文」で、状態を尋ねる系のメソッドを使った文、例えばsomeNode.hasChildNodes()だったら、対応する英文は He "someNode" has some child nodes. みたいな「普通の文」なんじゃないのかなー、と思ってる。

な、なるほど。腑に落ちた。

ところでDOMにはgetElementByIdというメソッドがある。

document.getElementById("hoge");

これを命令文と解釈するとちょっと変。ネイティブ共は一体どういう英語をイメージしているのか?

I get an element by id of "hoge" from the document.

だろうか? とすると、この "I" は誰だろう? このメソッドを呼び出しているコード自身?

そう考えると

parentNode.appendChild(newChild)

I append "newChild" to "parentNode". 

とも解釈できる。でもオブジェクトが中心にあるべきオブジェクト指向で、主語がメソッドを呼び出しているコードというのはイマイチだよね。


話は変わってRails。Rubyは三人称単数にしないルールだが、Railsの人は三人称単数現在形を良く使う。acts_as_listとかbelongs_toとか。

class Hoge < ActiveRecord::Base
  acts_as_list
  belongs_to :fuga
end

これは

Hoge acts as list.
Hoge belongs to Fuga.

といった英語に見えてくるので、ネイティブにとって s を付けないのはあまりにも不自然すぎるのかもしれない。