零.此文动机 用了一段时间的Lua,用惯了Java C++等有Class关键字的语言,一直对Lua的中的面向对象技术感到费解,一个开源的objectlua更是看了n遍也没理解其中的原理,直到看到了Prototype-based programming一.什么是基于原型的编程基于原型的编程是面向对象编程的一种形式,通过复制已经存在的原型对象来实现面向对象,无与基于类的编程较大的区别是没有Class关键字,但是有类的概念。基于原型的编程也可以理解成基于实例的编程...
<script type="text/javascript">
function Person(){
this.name=‘li4‘
this.age=20
this.eat=function(){console.log(‘eating ...‘)}
this.sing=function(){console.log(‘sing ...‘)}
}
var p1=new Person()
console.log(‘my name is ‘+p1.name+‘, i am ‘+p1.age)
p1.eat()
p1.sing()
//设计模式:简单的链式编程,
//调用return this
function Man(){
t...
前言多家公司和组织已经公开了它们的风格规范,具体可参阅jscs.info,下面的内容主要参考了Airbnb的JavaScript风格规范。当然还有google的编程建议等编程风格
本章探讨如何使用ES6的新语法,与传统的JavaScript语法结合在一起,写出合理的、易于阅读和维护的代码。编程风格块级作用域(1)let 取代 var
ES6提出了两个新的声明变量的命令:let和const。其中,let完全可以取代var,因为两者语义相同,而且let没有副作用。‘use stri...
上一讲我们提出一个很好的思路,将一个类的可复用部分全部定义在prototype中,这样子类继承的时候可以很方便地通过prototype来继承;但是也带来一个问题就是子类在重写prototype中的属性时会改变所有实例的属性,这是因为父类和子类实例都共享同一个prototype;怎么解决呢?思路就是利用一个中间函数,具体请看代码:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-tra...
使用JSON 来定义一个对象: <script type="text/javascript">var xiaoming = { name : ‘xiaoming‘, age : 18, say : function(){ console.log(‘my name is ‘+this.name); }}xiaoming.say();xiaoming.name = ‘li xiao ming‘;xiaoming.say();</script> 原文:http://www.cnblogs.com/likewpp/p/6935684.html
随着网站逐渐变成"互联网应用程序",嵌入网页的Javascript代码越来越庞大,越来越复杂。网页越来越像桌面程序,需要一个团队分工协作、进度管理、单元测试等等......开发者不得不使用软件工程的方法,管理网页的业务逻辑。Javascript模块化编程,已经成为一个迫切的需求。理想情况下,开发者只需要实现核心的业务逻辑,其他都可以加载别人已经写好的模块。但是,Javascript不是一种模块化编程语言,它不支持"类"(class),更遑论"...
javaScript编码规范 这正是本书的内容:如何站在团队的角度去写<SPAN
style=‘font-family: "Times New Roman";‘>javascript代码。目标是解决多人开发的环境中很多工程师如何书写统一风格的代码的问题。对于个人来说,需要在一定程度上牺牲个人偏好、个人观点甚至个人英雄主义,但你所收获的将是一个能做大事的高效团队。
<SPAN style=‘font-family: "Times New Roman";‘>“java语言编码规范”指出编码规范如此重要的几个原因...
跨文档消息传递跨文档消息传递(cross-document messaging),有时候简称为XDM,指的是在来自不同域的页面间传递消息。例如,www.wrox.com域中的页面与位于一个内嵌框架中的p2p.wrox.com域中的页面通信。XDM的核心是postMessage()方法。在HTML5规范中,除了XDM部分之外的其他部分也会提到这个方法名,但都是为了同一个目的:向另一个地方传递数据。对于XDM而言,“另一个地方”指的是包含在当前页面中的<iframe>元素,或者由当前页面...
已给出的代码:<style>body,html{padding: 0;margin: 0;font-size: 14px;color: #000000;}table{border-collapse: collapse;width: 100%;table-layout: fixed;}thead{background: #3d444c;color: #ffffff;}td,th{border: 1px solid #e1e1e1;padding: 0;height: 30px;line-height: 30px;text-align: center;}
</style>
<script>function add() { }function bind() {}</script>
<table ><thead><tr><th>名称</th><th>价格</th><t...
chapter1 基本格式- 缩进 > tab or 2空格 or 4空格- 语句结尾 > 语句记得加";" > json 对象最后不要加 ","- 行的长度 > 80字符 > 超过了就换行, 记得空两个缩进- 空行 > 在方法前+空行 > 在方法中局部变量和第一条语句前+空行 > 多行或单行注释前+空行 > 在逻辑判断片段前+, 如 if, switch, while, for, try- 命名 > 驼峰命名 >> 尽量动词开...
用户点击某个链接时弹出一个新窗口javascript使用window对象的open()方法来创建新的浏览器窗口,这个方法有三个参数:window.open(url,name,features)url:新窗口地址,如果省略,则弹出空白窗口name:新窗口的名字features:新窗口的属性。比如:function open_url(url){window.open(url,"new-window","width:320,height:480");} 用 “javascript:” 伪协议来调用上面那个函数。(“javascript:” 伪协议让我们可以通过一个...
目录1. 概述2. 详论3. 参考1. 概述在上一篇文章《JavaScript异步编程3——Promise的链式使用》中,通过Promise的链式使用,避免程序中多次嵌套回调(回调地狱)。根据前面的文章我们可以知道,Promise是基于状态的,成功/失败的状态会分别去处理相应的回调函数。一般而言,失败的状态我们希望能够捕获它,将它像异常(Error)一样处理。2. 详论Promise的then()方法有两个参数,一个是成功的回调函数,一个是失败的回调函数。可以将失...
写在前面好的书,可能你第一遍并不能领会里面的精魂,当再次细细品评的时候,发现领悟的又是一层新的含义(这段时间,工作上也不会像从前一样做起来毫不费力,开始有了新的挑战,现在的老大让我既佩服又嫉妒,但真的是打心底里仰慕,希望自己有朝一日能过到他那个高度)既然现在还达不到那个层次,就好好堆砖吧,当砖堆到一定高度也自然会上一个小台阶。脚本位置脚本会阻塞页面渲染,直到它们全部下载并执行完成,页面才会继续渲染...
1. 常量可以使用const关键字创建只读的命名常量。常量名必须以字母、下划线或美元符开头,余下的部分可以包含字母、数字或下划线字符:const area_code = ‘515‘;不能通过赋值或重新声明来修改常量的值,常量必须被初始化成一个值。 JavaScript支持以下标准类型:Number(数值)String(字符串)Boolean(布尔)Symbol(ECMAScript 6中的新类型,符号)Object(对象)Null(空)Function(函数)Array(数组)Date(日期)RegExp(...
javascript中的基本数据类型包括:Undefined, Null, Boolean, Number, String 5种数据类型1. Undefined 类型 (只有一个值 undefined, 常被用来表示未初始化的变量)如果一个变量未进行初始化则它的初始值为undefined, 数据类型为Undefined var myVar; myVar === undefined // return true typeof myVar === ‘undefined‘ // return true函数的参数列表中,未传入的实参的形参其值为undf...