Created
December 5, 2012 22:20
-
-
Save shigeki/4220037 to your computer and use it in GitHub Desktop.
Object.observer() デモ1
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!DOCTYPE html> | |
<html lang="ja"> | |
<head> | |
<meta charset="UTF-8" /> | |
<title>Object.observer() demo1</title> | |
<style> | |
table, td, th { | |
border: 2px #000000 solid; | |
} | |
</style> | |
<script src="observer1.js"></script> | |
</head> | |
<body> | |
<div id="event"><div>Event Code</div> | |
<pre> | |
obj.b = 2; // プロパティ新規作成 | |
obj.a = 2; // プロパティ更新 | |
Object.defineProperties(obj, {a: { enumerable: false}}); // プロパティ設定変更 | |
delete obj.b; // プロパティ削除 | |
</pre> | |
</div> | |
<div id="results"></div> | |
</body> | |
</html> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
window.addEventListener('DOMContentLoaded',function() { | |
if (!Object.observe) { | |
alert('Object.observe not supported in your browser. Please use Chrome Dev Channel and enable Experimental JavaScript'); | |
return; | |
} | |
var obj = {a: 1}; | |
Object.observe(obj, output); | |
obj.b = 2; // プロパティ新規作成 | |
obj.a = 2; // プロパティ更新 | |
Object.defineProperties(obj, {a: { enumerable: false}}); // プロパティ設定変更 | |
delete obj.b; // プロパティ削除 | |
function output(changes) { | |
var results = document.getElementById('results'); | |
var table = document.createElement('table'); | |
results.appendChild(table); | |
var caption = document.createElement('caption'); | |
caption.innerText = 'Observed Events List'; | |
table.appendChild(caption); | |
var thead = document.createElement('thead'); | |
thead.innerHTML = '<tr><th>index</th><th>type</th><th>name</th><th>oldValue</th><th>currentValue</th></tr>'; | |
table.appendChild(thead); | |
changes.forEach(function(change, i) { | |
var tr = document.createElement('tr'); | |
tr.innerHTML = '<td>' + i + '</td><td>' + change.type + '</td><td>' + change.name + '</td><td>' + change.oldValue + '</td><td>' + change.object[change.name] + '</td>'; | |
table.appendChild(tr); | |
}); | |
} | |
}); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment