methodとproperty区別するのめんどくさい。
functionが入ってればmethodで、変数が入ってればpropertyで見てほしい。
これは言語側の仕事だと思うけど、大抵の言語で人間側が判断してるから実装が大変なのかな?
Delphiは基本的に同一視できるから良かった。
最初propertyとして実装して後からmethodへ変更とか普通にできたし。
参照はproperty直接読んで、書き込みはmethodとかもできたし。
(objectの参照追加と書き込みが別扱いなのはちょっとめんどかったけど)
あ、書いてて気づいたけど、methodを参照として代入するときもあるか。
でも、methodを参照として扱うことのほうが少ないんだから、それには特殊な演算しても割り当てればいい気がする。
(perl風)
こんな感じ。
var hoge = {};
hoge.fuga = 1;
alert(hoge.fuga); // alert(1)
hoge.fuga = function () {alert('this')};
hoge.fuga; // -> alert('this')
hoge.gege = &hoge.fuga;
hoge.gege; // -> alert('this')
functionが入ってればmethodで、変数が入ってればpropertyで見てほしい。
これは言語側の仕事だと思うけど、大抵の言語で人間側が判断してるから実装が大変なのかな?
Delphiは基本的に同一視できるから良かった。
最初propertyとして実装して後からmethodへ変更とか普通にできたし。
参照はproperty直接読んで、書き込みはmethodとかもできたし。
(objectの参照追加と書き込みが別扱いなのはちょっとめんどかったけど)
あ、書いてて気づいたけど、methodを参照として代入するときもあるか。
でも、methodを参照として扱うことのほうが少ないんだから、それには特殊な演算しても割り当てればいい気がする。
(perl風)
こんな感じ。
var hoge = {};
hoge.fuga = 1;
alert(hoge.fuga); // alert(1)
hoge.fuga = function () {alert('this')};
hoge.fuga; // -> alert('this')
hoge.gege = &hoge.fuga;
hoge.gege; // -> alert('this')
コメントする