WangXiZhu / fe-storage

这是平时自己的学习资料
0 stars 2 forks source link

js对象 #11

Open WangXiZhu opened 8 years ago

WangXiZhu commented 8 years ago
numObj.toLocaleString([locales [, options]]);    //   string

通过处理参数locales和options来格式化,定义函数。

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toLocaleString

其中参数

var number = 123456.789;

// German uses comma as decimal separator and period for thousands
console.log(number.toLocaleString('de-DE'));
var number = 123456.789;
console.log(number.toLocaleString('ja-JP', { style: 'currency', currency: 'JPY' }))
// → ¥123,457
WangXiZhu commented 7 years ago
 var nativeCreate = Object.create;
 nativeCreate && nativeCreate(prototype);

 var Ctor = function(){ };
 Ctor.prototype = prototype;
 var result = new Ctor;
 Ctor.prototype = null;
 return result;  //实现Ctor复用
WangXiZhu commented 7 years ago
  // 一般这样写
  function getValue(key,obj){
    return obj == null ? void 0 : obj[key];
  }
  //但是如果分别获取多个对象,每次都需要传两个参数,但是obj又是一样
  function getValueFromSomeObj(key){
      return obj == null ? void 0 : window.obj[key];
  }
  //这样的话,又显得不灵活,其他对象却不能调用改方法,underscore这样实现
   function property(key){
      return function(obj){
         return obj == null ? void 0 : obj[key];
      }
   }

  usage: 
  var getLength = property('length');  //定义获取 长度的方法

  var len = getLength(collection);   //获取长度

  //那么,能否通过下面这种方式来获取值呢
  function property(obj){
      return function(key){
         return obj == null ? void 0 : obj[key];
      }
   }
  也是可以的,但是我们习惯上还是创建公共的方法。