javascript - JS中的Number和new Number ,Date()和new Date()区别
黄舟
黄舟 2017-04-10 17:01:23
0
3
510

今天认真看了下JS的一些对象,有一个疑问。

var num=Number(10); undefined num.toString(8); "12" num.valueOf(); 10 var num1=new Number(10); undefined num1.toString(8); "12" num1.valueOf(); 10

当我同样的方法使用Date()的时候

var date=Date(); undefined Date.getMonth(); VM1166:2 Uncaught TypeError: Date.getMonth is not a function(…)(anonymous function) @ VM1166:2InjectedScript._evaluateOn @ VM976:904InjectedScript._evaluateAndWrap @ VM976:837InjectedScript.evaluate @ VM976:693 var date1=new Date(); undefined date1.getMonth(); 1 date "Wed Feb 03 2016 17:43:09 GMT+0800 (中国标准时间)"

直接创建Date()没法使用getMonth()等方法,而new之后可以,说明getMonth()是属于对象的方法了。
那Number那又是什么,为何函数和对象使用方法一样,结果也一样,实际运用中怎么区分呢

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

reply all (3)
刘奇

一个是静态方法,一个是实例的方法

    左手右手慢动作

    虽然已经有采纳的答案,我觉得这是一个题目,顺手做了一个实验。

    function MyNumber() { var args = [].slice.call(arguments); //console.log(args); this.args = args; return args.toString(); } MyNumber.prototype.toString = function() { return this.args.toString(); } var m = MyNumber(1,2,3); console.log(typeof m); //string console.log(m); //1,2,3 var o = new MyNumber(1,2,3); console.log(typeof o); //object console.log(o); //MyNumber {args: Array[3]} console.log(o.toString()); //1,2,3
      Latest Downloads
      More>
      Web Effects
      Website Source Code
      Website Materials
      Front End Template
      About us Disclaimer Sitemap
      php.cn:Public welfare online PHP training,Help PHP learners grow quickly!