《JavaScript设计模式》学习日志

  • 反模式的概念:

    1.描述一种针对某个特定问题的不良解决方案,该方案会导致糟糕的情况发生;

    2.描述如何摆脱前述的糟糕情况以及如何创造好的解决方案。

  • Javascript的反模式例子如下:

    1. 在全局上面文中定义大量污染全局命令空间的变量

    2.在调用setTimeout和setInterval时传递字符串(会用eval来执行)而不是函数。

    3.修改Object的原型 (这是最糟糕的反模式)

    4.使用内联Javascript

    5.在本应使用document.createElement的地方使用document.write。

  • 构造器(Constructor)模式

        1.对象创建

    在JavaScript中,创建新对象的两种常用方法为:

i.

var newObject={};

ii.

var newObject=new Object();  //object构造器的简洁记法

2.有四种方法可以将键值赋值给一个对象

i.  "点"语法

newObject.someKey="Hello World"; //设置属性
var key=newObject.someKey; //获取属性

ii. 中括号语法

newObject["someKey"]="Hello World"; //设置属性
var key=newObject["someKey"]; //获取属性

iii. Object.defineProperty

//设置属性
Object.defineProperty(newObject,"someKey",{
value:"for more control of the property's behavior",
writable:true,
enumerable:true,
configurable:true  
})
//如果上面的看着麻烦,可以使用下面的简便方式
var defineProp=function(obj,key,value) {
config.value=value;
Object.defineProperty(obj,key,config) ;
};  
//使用上述方式,先创建一个空的person对象
var person=Object.create(null);
//然后设置各个属性
defineProp(person,"car","Delorean"); 
defineProp(person,"dateOfBirth","1981");
defineProp(person,"hasBeard",false);

iv. Object.defineProperties

//设置属性
Object.defineProperties(newObject,(
"someKey":{ 
    value:"Hello World",
    writable:true 
},  
"anotherKey":{
    value:"Foo bar",
    writable:false 
}    
))
  •  基本Constructor (构造器)

  • 带原形的Constructor(构造器)


























你可能感兴趣的:(《JavaScript设计模式》学习日志)