188js PT----的金钱豹自助餐餐怎么样

188js――AG――――飞利浦劲锋pt860充了一夜电不能坏吧_珍藏百科
188js――AG――――飞利浦劲锋pt860充了一夜电不能坏吧
编辑: &&&来源:用户发布&&&发布时间:&&&查看次数:34
188js――AG――――飞利浦劲锋pt860充了一夜电不能坏吧,非常感谢!
塞下曲 卢纶
电脑数码相关
本文相关文章
- 关于我们 - 版权声明-
广告服务 - 友情链接 - 管理登录 -
Copyright &
All Rights Reserved
如有任何侵权、造谣信息请将网页地址和有法律效力的侵权造谣证明或判决书发往QQ:小时内删除。
苏ICP备号-1&javascript(4)
阅读了&编写高质量代码: 改善js程序的188个建议&后, 摘录了一些好的例子,记录之….
惰性载入函数
var addEvent = function(el, type, handle) {
// 先判断事件兼容问题
addEvent = el.addEventListener ? function(el, type, handle) {
el.addEventListener(type, handle, false);
} : function(el, type, handle) {
el.attachEvent("on" + type, handle);
// 由于前面修改了addEvent的函数, 所以必须重新执行一次
// 在函数内部改变自身的方式
addEvent(el, type, handle);
function bind(fn, context) {
return fn.apply(context, arguments);
function map(array, fn) {
var res = [];
for(var i = 0, len = array. i & i++) {
res.push(fn(array[i]);
var mapped =map([1, 3, 5, 7], function(n) {
return n = n + 1;
// [2, 4, 6, 8]
规定一个事件在指定的时间只能被调用一次
例如监听窗口resize的事件
会直到用户停止拖动才会响应事件
var processor = {
// 在规定间隔内只能执行一次
timeoutId : 0,
// 实际进行处理的方法
performProcessing: function() {
// 实际执行的方法
process: function() {
clearTimeout(timeoutId);
var that =
this.timeoutId = setTimeout(function() {
that.performProcessing();
// 尝试开始执行
processor.process();
function throttle(method, context) {
clearTimeout(method.tId);
method.tId = setTimeout(function() {
method.call(context);
作用域安全的构造函数
function Polygon(sides) {
if (this instanceof Polygon) {
this.sides =
this.getArea = function() {
return new Polygon(sides);
function Rectangle(width, height) {
Polygon.call(this, 2);
this.width =
this.height =
this.getArea = function() {
return this.width * this.
Rectangle.prototype = new Polygon();
var rect = new Rectangle(5, 10);
rect.getArea();
rect. // -& 2
使用原型来实现数据备份
原理是利用原型对象来储存实例对象的所有可枚举的属性 P.prototype[i] = this[i];
function P(x) {
P.prototype.backUp = function() {
for (var i in this) {
P.prototype[i] = this[i];
var p1 = new P(1);
p1.backUp();
p1.x; // -& 1
p1.x = 10;
p1.x; // -& 10
p1.x; // -& 1
批量修改原型对象
这样如果想要修改所有复制到实例的x值 只需要修改原型对象中的值 就可以了
function F(x) {
var a = [];
function Temp() {}
Temp.prototype = new F(10);
for (var i = 0; i & 10; i++) {
a[i] = new Temp();
函数的引用和调用
函数的调用能够改变函数的执行作用域
name: "object o",
f: function() {
name: "object o1",
me: o.f // 引用了o.f的方法
var who = o.o1.me();
who. // -& "object o1"
name: "object o2",
// 改变了当前的执行作用域
me: o.f() // 调用了o.f的方法
var who = o.o2.
who. // -& "object o"
快速打印一个五分制的评分情况
function getRating(rating) {
if(rating & 5 || rating & 0) {
throw new Error('数字不在范围内");
return "★★★★★☆☆☆☆☆".slice(5 - rating, 10 - rating);
getRating(3);
// -& '★★★☆☆'
输出n个”abc”拼接成的字符串
var str = new Array(n + 1).join("abc");
处理文档加载
jQuery.ready.promise = function(obj) {
if (!readyList) {
readyList = jQuery.Deferred();
if (document.radyState === "complete") {
setTimeout(jQuery.ready);
document.addEventListener("DOMContentLoaded", completed, false);
window.addEventListener("load", completed, false);
return readyList.promise(obj);
jQuery中执行noConflict函数的理解
1. 首先在&head&&/head&中可以插入脚本,比如是prototype.js和jQuery.js库
2. 在导入jQuery.js的时候,将prototype.js中的$进行保存, var _$ = window.$;
3. jQuery.js完全导入后,此时的window.$已经被替换成了jQuery中$
4. 当执行noConflict函数, 此时的window.$ === jQuery 成立,系统会将window.$ 替换成之前保存_$, 即prototype中的$
5. 此时即完成了jQuery让出$控制权的功能
6. 应该注意在加载jQuery之前已经存在一个$命名空间的的库,否则 var _$ = window.$就没有意义了
使用Cookie存储长信息
读取所用cookie信息,包括子cookie信息
返回: 对象 存储cookie值
bug: 测试数据无法中的过期时间无法加入到o对象中去
function getSubCookie() {
var a = document.cookie.split(";");
console.log(a.length);
var o = {};
for (var i = 0; i & a. i++) {
// 消除a[i]字符串中的头部尾部字符串 类似于trim()函数
a[i] && (a[i] = a[i].replace(/^\s+|\s+$/, ""));
var b = a[i].split("=");
var c = b[1];
c && (c = c.replace(/^\s+|\s+$/, ""));
c = unescape(c); // 解码cookie值
if (!/\,/.test(c)) { // 判断是否包含"," 如果没有 则表示只包含一个子cookie信息
o[b[0]] = b[1];
var d = c.split(",");
for (var j = 0; j & d. j++) {
var e = d[j].split(":");
o[e[0]] = e[1]; // 把子cookie信息写入返回对象中去
// 定义expires有效期
// 实验数据 "user=escape(a); expires=d"
var d = new Date();
d.setMonth(d.getMonth() + 1);
d = d.toUTCString();
var a = "name:a, age:20, addr:beijing";
var c = "user=" + escape(a); // escape() 编码
c = c + ";" + "expires=" + escape(d);
document.cookie = // 写入cookie信息
if (navigator.cookieEnabled) {
var o = getSubCookie();
console.log(o);
封装cookie应用接口
传入一个参数时, 表示读取指定的cookie的值
传入两个参数时, 表示写入cookie信息, 第一个参数表示名称,第二个参数表示值
第三个参数传递选项信息,对象
function cookie(name, value, options) {
if (typeof value != "undefined") { // 如果第二个参数存在
options = options || {};
if (value === null) {
options.expires = -1; // 设置失效时间
var expires = "";
if (options.expires && (typeof options.expires == "number" || options.expires.toUTCString)) {
if (typeof options.expires == "number") {
date = new Date();
date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));
date = options.
expires = "; + expires=" + date.toUTCString();
var path = options.path ? "; path=" + options.path : ""; // 设置路径
var domain = options.domain ? "; domain=" + options.domain : ""; // 设置域
var secure = options.secure ? "; secure=" + options.secure : ""; //
设置安全措施,为ture则直接设置
document.cookie = [name, "=", encodeURIComponent(value), expires, path, domain, secure].join("");
} else { // 如果第二个参数不存在,则表示读取指定cookie信息
var cookieValue =
if (document.cookie && document.cookie != " ") {
var cookie = document.cookie.split(";");
for (var i = 0; i & cookie. i++) {
var cookie[i] = (cookie[i] || " ").replace(/^\s+|\s+$/, "");
if (cookie[i].slice(0, name.length + 1) == (name + "=")) {
cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
return cookieV //
返回查找的cookie值
条件预加载
// 兼容事件监听函数
function addHeadler(target, eventType, handler) {
if (target.addEventListener) { // DOM2 Events
addHeadler = function(target, eventType, handler) {
target.addEventListener(eventType, handler, false);
} else { // IE
addHeadler = function(target, eventType, handler) {
target.attachEvent("on" + eventType, handler);
addHeadler(target, eventType, handler);
// 条件预加载
var addHeadler = document.body.addEventListener ? function(target, eventType, handler) {
target.addEventListener(eventType, handler, false);
} : function(target, eventType, handler) {
target.attachEvent("on" + eventType, handler);
随机加载函数
// Math.random() * Math.random()
随机数接近于0而疏远于1
function updateRandom() {
var p = Math.random(),
n = Math.random() / 4;
if (p & 0.01) {
return 0 + // [0, 0.25)
} else if (p & 0.04) {
return 0.25 +  n; // [0.25, 0.5)
} else if (p & 0.1) {
return 0.5 + // [0.5, 0.75)
return 0.75 + // [0.75, 1)
var objects = ["登山包", "旅行箱", "移动电源", "不中奖"];
var object = [];
var num = [0, 0, 0, 0];
for (var i = 0; i & 1000; i++) {
var randomIndex = Math.floor(objects.length * updateRandom());
object[i] = objects[randomIndex];
if (object[i] == "登山包") {
} else if (object[i] == "旅行箱") {
} else if (object[i] == "移动电源") {
// 输出测试数据
生成工厂函数
function randomInProbability(weights) {
if (arguments.length & 1) {
weights = [].slice.call(arguments);
var total, current = 0,
parts = [],
len = weights.
total = weights.reduce ? weights.reduce(function(a, b)) {
return a +
}): eval(weights.join("+"));
for (; i & i++) {
current += weights[i];
parts.push("if(p&", current / total, "return", i / len, "+n");
return Function("var p = Math.random(), n = Math.random() / " + len + ";" + parts.join(""));
自定义事件
function EventTarget() {
this.handlers = {};
EventTarget.prototype = {
constructor: EventTarget,
addHeadler: function(type, handler) {
if (typeof this.handlers[type] == "undefined") {
this.handlers[type] = [];
this.handlers[type].push(handler);
fire: function(event) {
if (!event.target) {
event.target =
if (this.handlers[event.type] instanceof Array) {
var handlers = this.handlers[event.type];
for (var i = 0; len = handlers. i & i++) {
handlers[i](event);
removeHandler: function(type, handler) {
if (this.handlers[type] instanceof Array) {
var handlers = this.handlers[type];
for (var i = 0, len = handlers. i & i++) {
if (handlers[i] == handler) {
handlers.slice(i, 1);
function handlerMessage(event) {
alert("Message received: " + event.message);
// 创建一个新对象
var target = new EventTarget();
// 添加一个事件处理程序
target.addHeadler("message", handlerMessage);
// 触发事件
target.fire({
type: "message",
message: "Hello world!"
// 删除事件处理程序
target.removeHandler("message", handlerMessage);
// 再次, 应没有处理程序
target.fire({
type: "message",
message: "Hello world!"
鼠标拖动功能
var drogDrop = function() {
var dragging =
function handlerEvent(event) {
// 获取事件和目标
event = EventUtil.getEvent(event);
var target = EventUtil.getTarget(event);
// 确定事件类型
switch (event, type) {
case 'mousedown':
if (target.className.indexOf('draggable') &  -1) {
dragging =
case 'mousemove':
if (dragging != null) {
// 指定位置
dragging.style.left = event.clientX + 'px';
dragging.style.top = event.clientY + 'px';
case 'mouseup':
dragging =
// 公共接口
enable: function() {
EventUtil.addHeadler(document, 'mousedown', handlerEvent);
EventUtil.addHeadler(document, 'mousemove', handlerEvent);
EventUtil.addHeadler(document, 'mouseup', handlerEvent);
disable: function() {
EventUtil.removeHandler(document, 'mousedown', handlerEvent);
EventUtil.removeHandler(document, 'mousemove', handlerEvent);
EventUtil.removeHandler(document, 'mouseup', handlerEvent);
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:1502次
排名:千里之外
(5)(2)(2)(1)

我要回帖

更多关于 香港旺角188元自助餐 的文章

 

随机推荐