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

前端之家收集整理的这篇文章主要介绍了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() – 可怕.>所以,几乎总是.

猜你在找的JavaScript相关文章