最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

js面向对象设计用{}好还是function(){}好(构造函数)_js面向对象

来源:动视网 责编:小采 时间:2020-11-27 21:01:10
文档

js面向对象设计用{}好还是function(){}好(构造函数)_js面向对象

js面向对象设计用{}好还是function(){}好(构造函数)_js面向对象:在网上看了很多JavaScript的项目, 用到对象都是采用{}的形式: 例如jQuery, TinyMCE等都是形如: 代码如下: var Dialog = { int : function() { .... }, insert : function() { .... }, pop : function() { ....
推荐度:
导读js面向对象设计用{}好还是function(){}好(构造函数)_js面向对象:在网上看了很多JavaScript的项目, 用到对象都是采用{}的形式: 例如jQuery, TinyMCE等都是形如: 代码如下: var Dialog = { int : function() { .... }, insert : function() { .... }, pop : function() { ....


在网上看了很多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 更好

文档

js面向对象设计用{}好还是function(){}好(构造函数)_js面向对象

js面向对象设计用{}好还是function(){}好(构造函数)_js面向对象:在网上看了很多JavaScript的项目, 用到对象都是采用{}的形式: 例如jQuery, TinyMCE等都是形如: 代码如下: var Dialog = { int : function() { .... }, insert : function() { .... }, pop : function() { ....
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top