Javascript 调用数组原型函数

Javascript 调用数组原型函数,javascript,Javascript,我试过chrome,下面不好的原因是什么 Array.prototype.ts= function () { alert("hallo") } [1, 9, 8, 7, 6, 5, 3, 4, 5, 2, 0].ts(); //not ok - what is the reason? ([1, 9, 8, 7, 6, 5, 3, 4, 5, 2, 0]).ts(); //ok 函数声明后缺少分号。下面是我在chrome控制台中运行的内容,我看到一切都正常工作

我试过chrome,下面不好的原因是什么

 Array.prototype.ts= function () {
          alert("hallo")
      }

[1, 9, 8, 7, 6, 5, 3, 4, 5, 2, 0].ts(); //not ok - what is the reason?
([1, 9, 8, 7, 6, 5, 3, 4, 5, 2, 0]).ts(); //ok

函数声明后缺少分号。下面是我在chrome控制台中运行的内容,我看到一切都正常工作。用小提琴看下面

Array.prototype.ts=function(){alert('test')};

[1,2,3].ts()
函数声明后缺少分号。下面是我在chrome控制台中运行的内容,我看到一切都正常工作。用小提琴看下面

Array.prototype.ts=function(){alert('test')};

[1,2,3].ts()
函数声明后缺少分号。下面是我在chrome控制台中运行的内容,我看到一切都正常工作。用小提琴看下面

Array.prototype.ts=function(){alert('test')};

[1,2,3].ts()
函数声明后缺少分号。下面是我在chrome控制台中运行的内容,我看到一切都正常工作。用小提琴看下面

Array.prototype.ts=function(){alert('test')};

[1,2,3].ts() 据我所知,您应该避免扩展阵列原型,因为它可以更改其默认行为。
您可以编写一个“普通”函数来完成完全相同的任务,只需在开始执行任何其他操作(array.isArray(yourArray))之前检查输入参数是否为数组,这样您就不会用不必要的函数污染任何内容

当我运行它时,它们都被执行:) 据我所知,您应该避免扩展阵列原型,因为它可以更改其默认行为。
您可以编写一个“普通”函数来完成完全相同的任务,只需在开始执行任何其他操作(array.isArray(yourArray))之前检查输入参数是否为数组,这样您就不会用不必要的函数污染任何内容

当我运行它时,它们都被执行:) 据我所知,您应该避免扩展阵列原型,因为它可以更改其默认行为。
您可以编写一个“普通”函数来完成完全相同的任务,只需在开始执行任何其他操作(array.isArray(yourArray))之前检查输入参数是否为数组,这样您就不会用不必要的函数污染任何内容

当我运行它时,它们都被执行:) 据我所知,您应该避免扩展阵列原型,因为它可以更改其默认行为。
您可以编写一个“普通”函数来完成完全相同的任务,只需在开始执行任何其他操作(array.isArray(yourArray))之前检查输入参数是否为数组,这样您就不会用不必要的函数污染任何内容

这是正确的,不过我想解释一下原因

分号在JavaScript中通常不有用,但这样的情况说明了不使用分号的风险:

  • 函数声明是有效的表达式

  • 表达式后跟括号中的内容(
    []
    )也是有效表达式

因此,这两行被解释为一个表达式,而第二行看起来像是一个数组,实际上被读取为函数对象的无效索引。我建议在代码中以
[
开头的任何行的开头添加分号(
)(当然,除非是要继续上一行)

换句话说,您的代码如下所示:

Array.prototype.ts= function () { /*…*/ }[1, 9 /* etc */].ts();

Runthis是正确的,尽管我想解释一下原因

分号在JavaScript中通常不有用,但这样的情况说明了不使用分号的风险:

  • 函数声明是有效的表达式

  • 表达式后跟括号中的内容(
    []
    )也是有效表达式

因此,这两行被解释为一个单独的表达式,而第二行看起来像数组的内容实际上被解读为函数对象的无效索引。我建议在代码中以
[
开头的任何行的开头添加分号(当然,除非是要继续上一行)

换句话说,您的代码如下所示:

Array.prototype.ts= function () { /*…*/ }[1, 9 /* etc */].ts();

Runthis是正确的,尽管我想解释一下原因

分号在JavaScript中通常不有用,但这样的情况说明了不使用分号的风险:

  • 函数声明是有效的表达式

  • 表达式后跟括号中的内容(
    []
    )也是有效表达式

因此,这两行被解释为一个单独的表达式,而第二行看起来像数组的内容实际上被解读为函数对象的无效索引。我建议在代码中以
[
开头的任何行的开头添加分号(当然,除非是要继续上一行)

换句话说,您的代码如下所示:

Array.prototype.ts= function () { /*…*/ }[1, 9 /* etc */].ts();

Runthis是正确的,尽管我想解释一下原因

分号在JavaScript中通常不有用,但这样的情况说明了不使用分号的风险:

  • 函数声明是有效的表达式

  • 表达式后跟括号中的内容(
    []
    )也是有效表达式

因此,这两行被解释为一个单独的表达式,而第二行看起来像数组的内容实际上被解读为函数对象的无效索引。我建议在代码中以
[
开头的任何行的开头添加分号(当然,除非是要继续上一行)

换句话说,您的代码如下所示:

Array.prototype.ts= function () { /*…*/ }[1, 9 /* etc */].ts();