JS直接访问Concat方法

时间:2016-11-15 14:52:43

标签: javascript string google-chrome firefox prototype

考虑以下代码:

var foo = String.concat("foo","bar");

为什么这在Mozilla Firefox上运行正常,但在Google Chrome上运行时我得到“Uncaught TypeError:String.concat不是函数”?或者,展位工作正常:

var foo = String.prototype.concat("foo","bar");

2 个答案:

答案 0 :(得分:3)

简单地说,因为Firefox正在使用String对象做一些非标准的事情。

  

在String对象上,String实例方法也可用于JavaScript 1.6(不是ECMAScript标准的一部分),用于将String方法应用于任何对象:

上面链接的页面上有一个垫片,用于在通用String上提供这些实例方法。不推荐使用它。使用标准化的方法在字符串实例上执行方法,例如

var foobar = "foo".concat("bar")

答案 1 :(得分:0)

Concat是一种实例方法。 Firefox做错了,让你这样称呼它。试试

"foo".concat("bar") // "foobar"

var x = "foo";
x.concat("bar"); // "foobar"

您不应该直接从构造函数对象调用原型方法。