clone.html revision 1b298c6f0ef597aa4ab0b8bcb25430b6c9a87749
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
11e9368a226272085c337e9e74b79808c16fbdbaTinderbox User<html>
75c0816e8295e180f4bc7f10db3d0d880383bc1cMark Andrews<head>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<title>YUI 3.0</title>
4a14ce5ba00ab7bc55c99ffdcf59c7a4ab902721Automatic Updater<!--
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<script type="text/javascript" src="http://yui.yahooapis.com/3.0.0pr2/build/yui/yui-min.js"></script>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein-->
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<script type="text/javascript" src="/build3x/yui/yui-debug.js"></script>
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein<script type="text/javascript">
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinYUI({
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein base: '/build3x/',
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein filter: 'debug'
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein }).use('oop', 'dump', function(Y) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein var o = {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein str: "object1",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein arr: [
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein "array1",
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User true,
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt { obj: "obj"},
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein ["array2"]
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein ],
cd32f419a8a5432fbb139f56ee73cbf68b9350ccTinderbox User dat: new Date(),
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein fn: function() {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein Y.log('fn ' + this.str);
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein },
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein obj: {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein a: [1]
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein },
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein regex: /foo/,
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein nada: null
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein }
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein // var o2 = Y.clone(o, true);
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein var o2 = Y.clone(o);
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein o2.str = 'object2';
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User Y.log(Y.dump(o));
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User Y.log(Y.dump(o2));
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein Y.log(o2.regex instanceof RegExp);
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein Y.log(!!Y.Lang.isValue(o2.nothing));
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User});
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User /*
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox UserYUI().use('oop', 'dump', function(Y) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein var o = {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein name: 'object',
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User id: 'object1'
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein };
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User var o2 = Y.clone(o);
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein o2.id = 'object2';
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User Y.log(Y.dump(o));
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User Y.log(Y.dump(o2));
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein});
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein*/
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein/*
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox UserY = YUI({
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User base: '/build3x/'
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User }).use('dump', 'attribute', function(Y) {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User var newobj = {},
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User o = {
48abcd3eb789fdd24a2e0a6155b25e6979a39ae0Mark Andrews str: "str",
48abcd3eb789fdd24a2e0a6155b25e6979a39ae0Mark Andrews arr: [
48abcd3eb789fdd24a2e0a6155b25e6979a39ae0Mark Andrews "array1",
48abcd3eb789fdd24a2e0a6155b25e6979a39ae0Mark Andrews true,
48abcd3eb789fdd24a2e0a6155b25e6979a39ae0Mark Andrews { obj: "obj"},
48abcd3eb789fdd24a2e0a6155b25e6979a39ae0Mark Andrews ["array2"]
48abcd3eb789fdd24a2e0a6155b25e6979a39ae0Mark Andrews ],
48abcd3eb789fdd24a2e0a6155b25e6979a39ae0Mark Andrews dat: new Date(),
48abcd3eb789fdd24a2e0a6155b25e6979a39ae0Mark Andrews fn: function() {
48abcd3eb789fdd24a2e0a6155b25e6979a39ae0Mark Andrews Y.log('fn ' + this.str);
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein },
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User obj: {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein a: [1]
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein },
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein regex: /foo/,
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User //win: window,
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein nada: null,
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein // els: document.getElementsByTagName('head'),
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein state: new Y.State()
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein };
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User var o2 = Y.clone(o);
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein Y.log("orig: " + Y.Lang.dump(o));
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User Y.log("copy: " + Y.Lang.dump(o2));
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User
5a4557e8de2951a2796676b5ec4b6a90caa5be14Mark Andrews o.str = 'changed';
71c66a876ecca77923638d3f94cc0783152b2f03Mark Andrews o.date = new Date(0);
71c66a876ecca77923638d3f94cc0783152b2f03Mark Andrews // o.obj.a = ['changed'];
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein // o.obj = { changed: 'changed' };
71c66a876ecca77923638d3f94cc0783152b2f03Mark Andrews // o2.obj = { changed: 'copy' };
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein o.obj.a[0] = 'changed'
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
71c66a876ecca77923638d3f94cc0783152b2f03Mark Andrews Y.log("orig: " + Y.Lang.dump(o));
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein Y.log("copy: " + Y.Lang.dump(o2));
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
71c66a876ecca77923638d3f94cc0783152b2f03Mark Andrews o.fn();
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein o2.fn();
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein // cloned regex literals do not work
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User // Y.log("fixed regex: " + "i have foo".match(o2.regex));
71c66a876ecca77923638d3f94cc0783152b2f03Mark Andrews
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User o.foo = "NewPropShouldNotBeInO2";
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein Y.log(o2.foo);
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User function A() {
fd2597f75693a2279fdf588bd40dfe2407c42028Tinderbox User
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein }
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein A.prototype = {
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein str:"bar",
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein obj: {}
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein }
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein var a = new A();
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein var b = Y.clone(a);
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein A.prototype.str = "StrShouldNotBeUpdatedInB";
71c66a876ecca77923638d3f94cc0783152b2f03Mark Andrews
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein Y.log(b.str);
cd32f419a8a5432fbb139f56ee73cbf68b9350ccTinderbox User
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein var seed = { foo : { bar : 'bar' } };
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein var clone = Y.clone(seed);
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
14a656f94b1fd0ababd84a772228dfa52276ba15Evan Hunt Y.log(1,'seed.foo.bar: ' + seed.foo.bar); // 'bar'
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein Y.log(1,'clone.foo.bar: ' + clone.foo.bar); // 'bar'
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
seed.foo.bar = 'foo';
Y.log(2,'seed.foo.bar: ' + seed.foo.bar); // 'foo'
Y.log(2,'clone.foo.bar: ' + clone.foo.bar); // 'bar'
delete clone.foo.bar;
Y.log(3,'seed.foo.bar: ' + seed.foo.bar); // 'foo'
Y.log(3,'clone.foo.bar: ' + clone.foo.bar); // 'foo'!
Y.log([].constructor.prototype);
// Y.log(o2.els[0].parentNode);
Y.log(/adam/ instanceof RegExp);
Y.log(o2.state.get('bar'));
// Y.log("-" + Y.Lang.dump(a.constructor.prototype));
});
*/
</script>
<body>
<input id="addButton" type="button" value="Add link" />
</body>
</html>