JSFiddle - React, Tailwind, and code Playground
by etianqq
HTML
<div id="box">
<div id="content">
<div>
Effective Javascript - 对象和原型
<div><br></div>
<div>1. 理解prototype, getPrototypeOf, __proto__之间的区别</div>
<div style="font-size: 30px">C.prototype:用于建立有new C()创建的对象的原型</div>
<div>getPrototypeOf:ES5中获取Object对象原型的标准方法</div>
<div>__proto__:获得Object对象原型的非标准方法</div>
<div><br></div>
<div><h1>JS中类的本质是一个构造函数</h1>(User)与一个用于该类(User.prototype)实例间共享方法的原型对象的结合</div>
<div><br></div>
<div>2. 使用Object.getPrototypeOf函数而不要用__proto__属性</div>
<div><br></div>
<div style="font-size: 30px">3. 始终不要修改__proto__属性</div>
<div><br></div>
<div>4. 使构造函数与new操作符无关</div>
<div>用new操作符调用构造函数,接收者是一个全新的对象;</div>
<div>如果不使用new而直接调用构造函数,接收者是全局对象</div>
<div><br></div>
<div style="font-size: 30px">一个好的写法是:</div>
<div><font color="#002463">function User(name, passwordHash){</font></div>
<div><font color="#002463"><span> </span>if(!(this instanceof User)) {</font></div>
<div><font color="#002463"><span> <span> </span></span>return new
User(name, passwordHash);</font></div>
<div><font color="#002463"><span> </span>}</font></div>
<div><font color="#002463"><span> this.name = name;</span><br></font></div>
<div><font color="#002463"><span> this.passwordHash = passwordHash;</span><br></font></div>
<div><font color="#002463">}</font></div>
<div><br></div>
<div>或者是:</div>
<div>
<div><font color="#002463">function User(name, passwordHash){</font></div>
<div><span><span><font color="#002463"> var self = this instanceof User?this:
...
CSS
#box {
position: relative;
margin-left: 100px;
width: 600px;
height: 300px;
border: 2px solid #000;
/*overflow: hidden;*/
}
#content {
position: absolute;
top: 0;
left: 0;
height: 290px;
padding: 0 5px;
-webkit-column-width: 290px;
-webkit-column-gap: 20px;
-moz-column-width: 290px;
-moz-column-gap: 20px;
column-width: 290px;
column-gap: 20px;
border: 1px solid red;
}
JavaScript
var cw = 290; // css:column-width: 290px;
var gap = 20;// css:column-gap: 20px;
$(document).ready(function () {
var content = $("#content");
content.css("width", getWidth());
});
function getWidth(content) {
var left = $(".endpoint").position().left;
$(".left").html(left);
$(".columnCount").html(Math.ceil(left/(cw+gap)));
var width = left + cw;
return width;
}