開発環境
- 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 コメント:
コメントを投稿