javascript - 这两种JS写法有什么区别
问题描述
function cs() { var _cs = {};_cs .open_change_customer_p = function (url, url_param) {console.log(url);console.log(url_param);//do something......block_enter_presss(); };function block_enter_presss() {/**屏蔽bootstrap搜索框按enter会刷新,搜索框响应enter键 */ } return _cs ;}
function cs() { cs .open_change_customer_p = function (url, url_param) {console.log(url);console.log(url_param);//do something......block_enter_presss(); };function block_enter_presss() {/**屏蔽bootstrap搜索框按enter会刷新,搜索框响应enter键 */ } return cs ;}
补充内容:我是在网页上通过var a=new cs();a.open_change_customer_p ();来使用。然后cs只暴露open_change_customer_p 这个函数上面两种写法,是把要暴露的方法挂在新的变量中比较好,还是直接挂在函数名下比较好?
问题解答
回答1:前面那种我见得比较多,后面那种写法是什么鬼。。
回答2:第二种是不是这样_cs.open_change_customer_p = function (url, url_param){......}
这两种的区别就是,第二种这种方法可以被删除,第一种用 var 定义的不能被删除,除此以外,貌似没什么区别了,看个人习惯了,第一种可读性可能会好一点
回答3:静态方法为什么不抽出来单独写一个函数,而要每次都新建?
回答4:...第一种用法:var cs1 = cs();var cs2 = cs();cs1 和 cs2 是两个不同的对象, 指向不同的内存空间而第二种会指向同一个空间,就是cs函数本身...会出现的问题就是你声明了俩变量,改变其中一个,另外一个的值跟着变(var cs1 = cs()这种用法)
如果你是想var cs1 = new cs()的话, 第二种始终控制的是cs函数本身呀...那里的cs应该换成this
第一种好...因为第二种很奇怪...
回答5:功能应该都是能实现相同的功能的
第一种看起来会比较舒服
第二种看起来会比较舒服
如果你是觉得第一种那样定义不太舒服,你可以这样子定义
function cs() { this.open_change_customer_p = function (url, url_param) {console.log(url);console.log(url_param);block_enter_presss(); };function block_enter_presss() {/**屏蔽bootstrap搜索框按enter会刷新,搜索框响应enter键 */ }}console.log(new cs())回答6:
你第二种方法能实现
var a=new cs();cs.open_change_customer_p ();
这样的调用? 我很怀疑
相关文章:
1. java - 阿里的开发手册中为什么禁用map来作为查询的接受类?2. apache - 想把之前写的单机版 windows 软件改成网络版,让每个用户可以注册并登录。类似 qq 的登陆,怎么架设服务器呢?3. 创建mysqli对象与数据库连接 - 出错4. 用Html5怎么实现简单选择排序?5. node.js - win7下,npm 无法下载依赖包,淘宝镜像也装不上,求帮忙???6. mysql 的datadir设置的文件夹不存在,启动了mysql服务后创建的数据库存在哪里?7. mysql 使用group_concat后 顺序改变是怎么回事?8. python - uwsgi+django的搭建问题9. php多任务倒计时求助10. 如何合并两张具有相同结构的mysql表
