javascriptnew:JavaScript中的new的使用思路方法和注意事项

原文: JavaScript, We Hardly Ya --Douglas Crockford
http://yuiblog.com/blog/2006/11/13/javascript-we-hardly--ya/

引用
JavaScript是门基于原型语言但它却拥有 操作符使得其看起来象门经典面对对象语言那样也迷惑了员们导致些有问题编程模式
其实你永远不需要在JavaScript使用 Object用字面量形式{}去取代吧
同理不要使用 Array 而代的以字面量JavaScript中并不象Java中那样工作使用类似Java语法只会让你糊涂
同理不用使用 Number, String, 或者 Boolean这些使用方法只会产生无用类型封装对象就直接使用简单字面量吧
不要使用 Function 去创建对象表达式更好比如:
frames[0].onfocus = Function(”document.bgColor='antiquewhite'”)
更好写法是:
frames[0].onfocus = function {document.bgColor = ‘antiquewhite';};
第 2种形式让脚本编译器更快看到主体于是其中语法也会更快被检测出来有时候员使用 Function 是他们没有理解内部是如何工作
selObj.onchange = Function(”dynamicOptionListObjects[”+
dol.index+”].change(this)”);
如果我们让用串做编译器不能看到它们如果我们用串表达式做我们同样也看不到它们更好方式就是不要盲目编程通过制造个返回值为我们可以明确按值传递我们想要绑定这允许我们在循环中系列 selObj 对象
selObj.onchange = function (i) {
function {
dynamicOptionListObjects[i].change(this);
};
}(dol.index);
直接对使用永远不是个好主意比如 function 对构造新对象没有提供什么优势
myObj = function {
this.type = ‘core';
};
更好方式是使用对象字面量它更轻巧更快捷
myObj = {
type: ‘core'
};
假如我们需要创建对象包含思路方法需要访问私有变量或者更好方式仍然是避免使用.
var foo = function {
function processMessages(message) {
alert(”Message: ” + message.content);
}
this.init = function {
subscribe(”/mytopic”, this, processMessages);
}
}
通过使用 对象会持有个无意义原型对象这只会浪费内存而不会带来任何好处如果我们不使用我们就不用在对象链维护个无用prototype对象所以我们可以用()来正确工厂
var foo = function {
function processMessages(message) {
alert(”Message: ” + message.content);
}
{
init: function {
subscribe(”/mytopic”, this, processMessages);
}
};
};
所以原则很简单: 唯应该要用到操作符地方就是个古老构造器时候个构造器时候是强制要求使用有时候可以来下, 有时候还是不要了吧


引用
注 原文:http://www.uiplanet.com/taobao/2007/05/15/%e4%bd%a0%e7%9c%9f%e7%9a%84%e4%bc%9a%e5%86%99javascript%e5%90%97%ef%bc%9f/
可以参考以下文章英文:http://msdn.microsoft.com/msdnmag/issues/07/05/JavaScript/default.aspx?loc=en#S6


Tags:  笔记本使用注意事项 微波炉使用注意事项 javascript的使用 javascriptnew

延伸阅读

最新评论

发表评论