微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – 什么时候应该使用自己的命名空间,何时应该扩展本机的js对象?

我正在重构代码.我无法确定如何实现几个实用功能.具体来说,如果某些功能在我的个人命名空间中更好,或直接扩展js Objects.

扩展本机JavaScript对象的示例

(这是适当的术语吗?).

String.prototype.prettyDate = function(){
  return (this.substr(5,2) + '/' + this.substr(8) + '/' + this.substr(0,4));
}
var myString = "2010-12-27";
//logs 12/27/2010
console.log(myString.prettyDate);

使用我自己的命名空间的例子

var myNamespace = (function(){
   var my = {};
   my.prettyDate = function ( dateStr ){
      return (dateStr.substr(5,2) + '/' + dateStr.substr(8) + '/' + dateStr.substr(0,4));
   }
return my;
}());
var pretifiedDate = myNamespace.prettyDate('2010-12-27');
//logs 12/27/2010
console.log(pretifiedDate);

需要考虑的问题

什么时候可以有效地插入本机JavaScript对象?
>如何知道实用程序在我自己的命名空间中是否更好?

解决方法

几乎从来没有,因为:

可能与其他图书馆冲突

b /扩展函数在运算符中作为属性进行迭代,这会产生问题,除非被hasOwnProperty(不常用)过滤掉,

你可以为小型单脚本作品提供理由,但只有当你确定没有人时,永远不会尝试在某处重复使用该代码.在这种情况下,只能用于跨越代码多个模块的功能.扩展字符串的trim() – 好的,扩展String与prettyDate() – 怀疑,扩展Object与displayAsPageHeader() – 可怕.>所以,几乎总是.

原文地址:https://www.jb51.cc/js/151506.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐