Skip to content

Instantly share code, notes, and snippets.

Created December 11, 2016 22:06
Show Gist options
  • Save anonymous/54015fd1c946d4b984d6311bf56e9cf7 to your computer and use it in GitHub Desktop.
Save anonymous/54015fd1c946d4b984d6311bf56e9cf7 to your computer and use it in GitHub Desktop.
JS Bin // source https://jsbin.com/pucuwomete
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>JS Bin</title>
<style id="jsbin-css">
* {
font-family: Helvetica, sans-serif;
font-size: 22px;
}
</style>
</head>
<body>
<div id="output"></div>
<script id="jsbin-javascript">
var bike = {
frameSize: '19 inch',
wheelSize: '26 inch',
tires: 'standard',
ready: false,
prepare: function() {
this.ready = true;
}
}
var mountainBike = {
frameSize: '18 inch',
frontSuspender: '20mm'
}
mountainBike.__proto__ = bike;
var roadBike = {
wheelSize: '29 inch',
tires: 'road'
};
roadBike.__proto__ = bike;
var fatBike = Object.create(mountainBike, {
wheelSize: {value:'27.5 inch'},
tires: {value:'fat'}
});
mountainBike.prepare();
//bike.__proto__ = fatBike;
// 1. mountainBike.wheelSize = 19 inch / 26 inch / 27.5 inch / undefined ?
// 2. roadBike.frameSize = 18 inch / 19 inch / 26 inch / undefined ?
// 3. roadBike.ready = true / false/ undefined;
// 4. fatBike.ready = true / false / undefined
var elem = document.querySelector('#output');
elem.innerHTML += 'mountainBike.wheelSize: ' +mountainBike.wheelSize+'<br />';
elem.innerHTML += 'roadBike.frameSize: ' + roadBike.frameSize+'<br />';
elem.innerHTML += 'roadBike.ready: ' + roadBike.ready+'<br />';
elem.innerHTML += 'fatBike.ready: ' + fatBike.ready+'<br />';
</script>
<script id="jsbin-source-css" type="text/css">* {
font-family: Helvetica, sans-serif;
font-size: 22px;
}</script>
<script id="jsbin-source-javascript" type="text/javascript">var bike = {
frameSize: '19 inch',
wheelSize: '26 inch',
tires: 'standard',
ready: false,
prepare: function() {
this.ready = true;
}
}
var mountainBike = {
frameSize: '18 inch',
frontSuspender: '20mm'
}
mountainBike.__proto__ = bike;
var roadBike = {
wheelSize: '29 inch',
tires: 'road'
};
roadBike.__proto__ = bike;
var fatBike = Object.create(mountainBike, {
wheelSize: {value:'27.5 inch'},
tires: {value:'fat'}
});
mountainBike.prepare();
//bike.__proto__ = fatBike;
// 1. mountainBike.wheelSize = 19 inch / 26 inch / 27.5 inch / undefined ?
// 2. roadBike.frameSize = 18 inch / 19 inch / 26 inch / undefined ?
// 3. roadBike.ready = true / false/ undefined;
// 4. fatBike.ready = true / false / undefined
var elem = document.querySelector('#output');
elem.innerHTML += 'mountainBike.wheelSize: ' +mountainBike.wheelSize+'<br />';
elem.innerHTML += 'roadBike.frameSize: ' + roadBike.frameSize+'<br />';
elem.innerHTML += 'roadBike.ready: ' + roadBike.ready+'<br />';
elem.innerHTML += 'fatBike.ready: ' + fatBike.ready+'<br />';
</script></body>
</html>
* {
font-family: Helvetica, sans-serif;
font-size: 22px;
}
var bike = {
frameSize: '19 inch',
wheelSize: '26 inch',
tires: 'standard',
ready: false,
prepare: function() {
this.ready = true;
}
}
var mountainBike = {
frameSize: '18 inch',
frontSuspender: '20mm'
}
mountainBike.__proto__ = bike;
var roadBike = {
wheelSize: '29 inch',
tires: 'road'
};
roadBike.__proto__ = bike;
var fatBike = Object.create(mountainBike, {
wheelSize: {value:'27.5 inch'},
tires: {value:'fat'}
});
mountainBike.prepare();
//bike.__proto__ = fatBike;
// 1. mountainBike.wheelSize = 19 inch / 26 inch / 27.5 inch / undefined ?
// 2. roadBike.frameSize = 18 inch / 19 inch / 26 inch / undefined ?
// 3. roadBike.ready = true / false/ undefined;
// 4. fatBike.ready = true / false / undefined
var elem = document.querySelector('#output');
elem.innerHTML += 'mountainBike.wheelSize: ' +mountainBike.wheelSize+'<br />';
elem.innerHTML += 'roadBike.frameSize: ' + roadBike.frameSize+'<br />';
elem.innerHTML += 'roadBike.ready: ' + roadBike.ready+'<br />';
elem.innerHTML += 'fatBike.ready: ' + fatBike.ready+'<br />';
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment