js面向对象设计用{}好还是function(){}好(构造函数)
来源:互联网 发布:java从入门 pdf 编辑:程序博客网 时间:2024/05/09 19:58
在网上看了很多JavaScript的项目, 用到对象都是采用{}的形式:
例如jQuery, TinyMCE等都是形如:
var Dialog =
{
int : function() { .... },
insert : function() { .... },
pop : function() { .... }
};
//调用就是:
Dialog.init();
而我自己一直使用function闭包的方式, 感觉使用内部私有成员(函数,变量)更方便:
function classDialog()
{
var box = "sdfsdf"; //init, insert等函数中调用公共变量就会很方便, 调用内部函数也很方便(如可以直接调用 search()).
this.init = function() { .... };
this.insert = function() { .... };
this.pop = function() { .... };
function search() { .... }
}
var Dialog = new classDialog();
Dialog.init();
看到TinyMCE在需要使用似有函数的时候, 是在init : function() { } 这个函数内部又定义了一个函数, 但是这样的话, 这个函数就只能 init调用, 其他方法就没办法共用这个私有函数了.
当然暂时还没有看到一个私有函数被多个公共函数调用的例子.
我想问问各位大神么, 既然function(){} 闭包创建对象使用那么方便, 为什么 {} 方法还用的那么广泛呢?
是不是 function() {} 创建的对象有什么缺陷?
回复:
对于直接使用{}创建对象..这种情况在创建极少数对象的情况下且不需要封装的情况下使用,对于需要批量创建对象的情况使用构造函数来实例化对象就非常方便 主要还是看具体的情况吧
这两种是完全不一样的东西。
{}可以算做一个单例(单例模式)
function(){} 这种返回一个对象。每次都NEW的时候返回都是一个不同的对象!
上面有同学也说了 {} 更效率了。而且不用new。{} 全局固定,可任意扩展。
一般来说{}确实效率高,使用简单随意,不过不想暴漏某些方法时候用 function 更好
例如jQuery, TinyMCE等都是形如:
复制代码代码如下:
var Dialog =
{
int : function() { .... },
insert : function() { .... },
pop : function() { .... }
};
//调用就是:
Dialog.init();
而我自己一直使用function闭包的方式, 感觉使用内部私有成员(函数,变量)更方便:
复制代码代码如下:
function classDialog()
{
var box = "sdfsdf"; //init, insert等函数中调用公共变量就会很方便, 调用内部函数也很方便(如可以直接调用 search()).
this.init = function() { .... };
this.insert = function() { .... };
this.pop = function() { .... };
function search() { .... }
}
var Dialog = new classDialog();
Dialog.init();
看到TinyMCE在需要使用似有函数的时候, 是在init : function() { } 这个函数内部又定义了一个函数, 但是这样的话, 这个函数就只能 init调用, 其他方法就没办法共用这个私有函数了.
当然暂时还没有看到一个私有函数被多个公共函数调用的例子.
我想问问各位大神么, 既然function(){} 闭包创建对象使用那么方便, 为什么 {} 方法还用的那么广泛呢?
是不是 function() {} 创建的对象有什么缺陷?
回复:
对于直接使用{}创建对象..这种情况在创建极少数对象的情况下且不需要封装的情况下使用,对于需要批量创建对象的情况使用构造函数来实例化对象就非常方便 主要还是看具体的情况吧
这两种是完全不一样的东西。
{}可以算做一个单例(单例模式)
function(){} 这种返回一个对象。每次都NEW的时候返回都是一个不同的对象!
上面有同学也说了 {} 更效率了。而且不用new。{} 全局固定,可任意扩展。
一般来说{}确实效率高,使用简单随意,不过不想暴漏某些方法时候用 function 更好
- js面向对象设计用{}好还是function(){}好(构造函数)
- 【Java面向对象设计 构造函数设计】
- 【Java面向对象设计 构造函数设计】
- 大家说用对象好还是字符串的拼接好?
- js--面向对象--构造函数的继承
- js 面向对象构造函数(继承)
- 2dx lua好还是js好
- 函数返回什么类型好:指针还是对象
- 悟透JavaScript(理解JS面向对象的好文章)
- 【javascript】悟透javascript(理解js面向对象的好文章)
- 悟透JavaScript(理解JS面向对象的好文章)
- 悟透JavaScript(理解JS面向对象的好文章)
- 悟透JavaScript(理解JS面向对象的好文章)
- 悟透JavaScript(理解JS面向对象的好文章)
- 还是minicom好用
- 还是CSDN好用
- 面向对象构造函数
- 面向对象-构造函数
- Refecing Improving the Design of Existing Code reading comments(二)
- 启动模式(Launch modes)
- 我对J2EE中13种技术规范的一个总结
- dp和px,那些不得不吐槽的故事——Android平台图
- Fiddler教程
- js面向对象设计用{}好还是function(){}好(构造函数)
- WP7 真机调试PHOTOCHOOSERTASK和CAMERACAPTURETASK
- android 手机侦探----源码共享
- repeater用法一步一步详讲,用来绑定和显示数据信息
- Activity 本质 AMS 分析
- C++单例模式及其析构
- Php发送请求参数丢失问题以及中文乱码问题
- vim ctags 下 python 系统文件定义的跳转
- oracle 监听错误