![リスコフの置換原則 - Wikipedia](https://cdn-ak-scissors.b.st-hatena.com/image/square/24dff667961af5d9abcb450ab0d1c43e79806eb3/height=288;version=1;width=512/https%3A%2F%2Fupload.wikimedia.org%2Fwikipedia%2Fcommons%2Fthumb%2F3%2F38%2FBarbara_Liskov_MIT_computer_scientist_2010.jpg%2F1200px-Barbara_Liskov_MIT_computer_scientist_2010.jpg)
JavaScript における new 演算子の動作は大まかにいって以下のとおりである。(new F() とした場合。) 新しいオブジェクトを作る。 1 で作ったオブジェクトの [[Prototype]] 内部プロパティ (__proto__ プロパティ) に F.prototype の値を設定する。 F.prototype の値がオブジェクトでないのなら代わりに Object.prototype の値を設定する。 F を呼び出す。このとき this の値は 1 で作ったオブジェクトとし、引数には new 演算子とともに使われた引数をそのまま用いる。 3 の返り値がオブジェクトならそれを返す。そうでなければ 1 で作ったオブジェクトを返す。 ここで「オブジェクトである」というのはプリミティブ値 (文字列、数値、真偽値、undefined 、null) ではないということだ。new Stri
第一級オブジェクト(ファーストクラスオブジェクト、first-class object)は、あるプログラミング言語において、たとえば生成、代入、演算、(引数・戻り値としての)受け渡しといったその言語における基本的な操作を制限なしに使用できる対象のことである。ここで「オブジェクト」とは広く対象物・客体を意味し、必ずしもオブジェクト指向プログラミングにおけるオブジェクトを意味しない。第一級オブジェクトは「第一級データ型に属す」という。 この言葉は1960年代にクリストファー・ストレイチーによって「functions as first-class citizens」という文脈で初めて使われた。 言語によって異なるが、第一級オブジェクトは概ね次のような性質をもつ。 無名のリテラルとして表現可能である。 変数に格納可能である。 データ構造に格納可能である。 それ自体が独自に存在できる(名前とは独立し
Moose はなにではないか Moose Is Not 実験やプロトタイプ (experimental) おもちゃ (toy) もう一つのアクセサビルダー (accessor builder) ソースフィルタ (source filter) 黒魔術 (black magic) Perl 6 in Perl 5 Mooseとはなにか Moose Is Perlのための完全にモダンなオブジェクトフレームワーク A complete modern object framework for Perl Mooseとはなにか Moose Is Class::MOPのためのシンタックスシュガー (Syntactic sugar) 祖先たち (ancestry) CLOS (Common Lisp Object System) Smalltalk Alces latifrons Perl 6 … 安定して
Perl OOP におけるクラスの実装方法 [ Perl ] Perl で OOP するにあたってはコンストラクタの書き方やアクセサの書き方に色んな方法があります。素で書くと package Dog; use strict; use warnings; # コンストラクタ sub new { my $class = shift; my $self = {}; bless $self, $class; return $self; } # アクセサ sub name { my $self = shift; @_ ? $self->{name} = shift : $this->{name}; } 1; あたりが定番だと思います。インスタンスフィールドをハッシュで実装して、アクセサは getter と setter を兼ねるメソッドとして定義。コンストラクタにおける初期化処理を $self->i
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く