開発環境
- OS X Lion - Apple(OS)
- Safari (Webプラウザ)
- TextWrangler(Text Editor) (BBEditの無料、light版)
- Script言語:JavaScript
- JavaScript Library: jQuery
『初めてのJavaScript 第2版』(シェリー・パワーズ著(Shelley Powers著)、武舎 広幸+武舎 るみ訳、オライリー・ジャパン、2009年、ISBN978-4-84312-225-5) の13章(JavaScriptのカスタムオブジェクトと例外処理)練習問第13-2を解いてみる。
その他参考書籍
- JavaScript 第6版
- JavaScriptリファレンス 第6版
- 『jQueryクックブック』(jQuery Community Experts 著、株式会社クイープ 訳、オライリー・ジャパン、2010年、ISBN978-4-87312-269-1)
13-2.
隠蔽する理由は、外部から意図しない変更が行われて、副作用等が起きるのを防ぐため。
コード(TextWrangler)
var Obj = function(){
var name = "JavaScript!";
this.p = function(){
$('#pre0').append("Hello, " + name + "!\n");
}
};
var obj = new Obj();
obj.p();
for(var p in obj){
$('#pre0').append("obj[" + p + "] = " + obj.p + "\n");
}
try{
if(obj.name === undefined) throw "obj.name: undefined";
$('#pre0').append(obj.name + "\n");
} catch (e){
$('#pre0').append(e + "\n");
$('#pre0').append("varキーワードを使って宣言したデータメンバーにはアクセスできない。");
}
ちなみにPython3kの場合。
コード(TextWrangler)
sample.py
#!/usr/bin/env python3.3
# -*- coding: utf-8 -*-
class Obj:
def __init__(self):
# Pythonではデータの隠蔽はできない
# とりあえず外部から変更したくないデータには先頭に下線をつけて目安に
self._name = "Python"
def p(self):
print("Hello, {0}".format(self._name))
o = Obj()
o.p()
print(o._name)
入出力結果(Terminal)
a$ ./sample.py Hello, Python Python $
0 コメント:
コメントを投稿