目录:
- 数据类型
- 原型&原型链
- 作用域
- 过程式编程
- 函数式编程
- new调用函数
- 设计模式
- 常用方式
原始类型:字符串(string)、数字(number)、布尔(boolean)、Null、Undefined、Symbol。
引用类型:Object
具体请参考:http://www.cnblogs.com/Ruth92/p/5268984.html
原始类型声明方式
var s1 = "123";
var num1 = 123;
var flag1 = true;
var arr1 = [];
区别:前者只有一些简单的函数和属性,后者拥有String对象的各种方法和属性。
引用类型声明方式
var obj1 = {};
var obj2 = new Object();
var obj3 = Object.create({});
//各种内置对象
var s1 = new String("123");
var num1 = new Number("123");
var flag1 = new Boolean("123");
var arr1 = new Array("1","2");
具体请参考:Object.create(proto [, propertiesObject ]);
原型&原型链
Javascript 只有一种结构:对象。每个对象都有一个私有属性(称为[[Prototype]]), 它持有一个连接到另一个称为其 prototype 对象的链接。该原型对象具有一个自己的原型,等等,直到达到一个对象的 prototype 为 null。根据定义,null 没有 prototype,并作为这个原型链 中的最后一个环节。JavaScript中几乎所有的对象都是位于原型链顶端的Object的实例。
基于原型链的继承
JavaScript 对象是动态的属性“包”(指其自己的属性)。JavaScript 对象有一个指向一个原型对象的链。当试图访问一个对象的属性时,它不仅仅在该对象上搜寻,还会搜寻该对象的原型,以及该对象的原型的原型,依此层层向上搜索,直到找到一个名字匹配的属性或到达原型链的末尾。
作用域
具体请参考:http://www.cnblogs.com/longze/p/3543242.html;
具体请参考:http://www.cnblogs.com/pssp/p/5215621.html
过程式编程
对于并未会有变化的js操作
$("#firstDiv").hover(function({
$("#secondDiv").css("display","block");
} , function(){
$("#secondDiv").css("display","none");
});
函数式编程
将之前的过程式js赋予变化,可多次调用该函数。
function toggle(s,t){
$(s).hover(function(){
$(t).css("display","block");
}, function(){
$(t).css("display","none");
});
}
new调用函数
当用new创建类的实例时,解释器首先会创建一个空的对象(相当于创建了一个新的作用域),把原型对象指向这个函数的原型对象,将this指针指向创建的上步创建的空对象然后运行这个函数。
具体请参考:http://www.cnblogs.com/liushannet/archive/2011/03/05/1971849.html
设计模式
具体请参考:http://www.cnblogs.com/tomxu/archive/2011/12/15/2288411.html
常用方式
1.extend:
具体请参考:https://segmentfault.com/a/1190000007076651