Home Web Front-end JS Tutorial How to use Array.prototype.slice.apply_javascript skills

How to use Array.prototype.slice.apply_javascript skills

May 16, 2016 pm 06:32 PM
apply array slice

Copy code The code is as follows:

function test(){ 
 //Convert the parameter to one Array
var args = Array.prototype.slice.apply(arguments);
alert(args);
}

arguments is an object unique to functions in JavaScript syntax Properties (Arguments object) are used to reference the actual parameters passed when calling the function. This object is much like an array. It has a length property and uses subscripts to obtain its elements, but it is not a real Array object. For more information about the Arguments object, please refer to "The Definitive Guide to JavaScript".
So, calling arguments.slice() directly will return an "Object doesn't support this property or method" error because arguments is not a real array. The significance of the above code calling Array.prototype.slice.apply(arguments) is that it can convert the parameter object of the function into a real array. We don’t know how the JavaScript script engine is implemented, but this method is indeed effective and has been tested on mainstream browsers. On the other hand, the relationship between the Arguments object and the Array object can also be inferred. If you often encounter situations when you need to convert arguments objects into Array for processing when writing JavaScript, this technique can help.
This technique comes from the famous Douglas Crockford. By extension, other Array prototype methods can also be applied to arguments, such as:
var arg0 = Array.prototype.shift.apply(arguments);
shift is also an instance method of Array, used to obtain and returns the first element of the array. Of course, although the above call is executable, it is completely redundant. It is not as simple and direct as calling arguments[0] directly. By extension, we can also apply this technique to many Array-like Collection objects, such as Array.prototype.slice.apply(document.getElementsByTagName('div')); However, unfortunately, IE does not support such a call. , Firefox and Opera both get correct results.
The $A() method added in Prototype 1.4 is also commonly used to convert arguments into arrays. Let’s look at its implementation:
Copy code The code is as follows:

var $A = Array.from = function(iterable) {
if(!iterable) return[];
if(iterable.toArray ) {
returniterable.toArray();
} else {
varresults = [];
for(vari=0; i returnresults;
} 
}

Prototype uses a for loop to construct a new array, in order to ensure maximum compatibility.
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
2 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
2 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. How to Fix Audio if You Can't Hear Anyone
2 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

How to solve the 'panic: runtime error: slice bounds out of range' error in golang? How to solve the 'panic: runtime error: slice bounds out of range' error in golang? Jun 25, 2023 pm 12:42 PM

In the Go language, we often encounter an error, namely "panic:runtimeerror:sliceboundsoutofrange" (slice out of range) error. This is because when we use slices, we usually access or operate the slice, and the access index may go out of bounds. This article will explain the basic causes of this error, how to avoid and solve it. 1. Cause of slice out-of-bounds error Slice is a reference type, which is controlled by the underlying

Sort array using Array.Sort function in C# Sort array using Array.Sort function in C# Nov 18, 2023 am 10:37 AM

Title: Example of using the Array.Sort function to sort an array in C# Text: In C#, array is a commonly used data structure, and it is often necessary to sort the array. C# provides the Array class, which has the Sort method to conveniently sort arrays. This article will demonstrate how to use the Array.Sort function in C# to sort an array and provide specific code examples. First, we need to understand the basic usage of the Array.Sort function. Array.So

Example analysis of Java Fluent Mybatis aggregation query and apply method process Example analysis of Java Fluent Mybatis aggregation query and apply method process May 22, 2023 pm 01:31 PM

Data preparation: In order to aggregate the conditions of the query, several pieces of data are added. MIN we try to get the minimum age. Method implementation @OverridepublicIntegergetAgeMin(){Mapresult=testFluentMybatisMapper.findOneMap(newTestFluentMybatisQuery().select.min.age("minAge").end()).orElse(null);returnresult!=null?Convert.toInt(result.get (&qu

Simple and clear method to use PHP array_merge_recursive() function Simple and clear method to use PHP array_merge_recursive() function Jun 27, 2023 pm 01:48 PM

When programming in PHP, we often need to merge arrays. PHP provides the array_merge() function to complete array merging, but when the same key exists in the array, this function will overwrite the original value. In order to solve this problem, PHP also provides an array_merge_recursive() function in the language, which can merge arrays and retain the values ​​of the same keys, making the program design more flexible. array_merge

How to use the array_combine function in PHP to combine two arrays into an associative array How to use the array_combine function in PHP to combine two arrays into an associative array Jun 26, 2023 pm 01:41 PM

In PHP, there are many powerful array functions that can make array operations more convenient and faster. When we need to combine two arrays into an associative array, we can use PHP's array_combine function to achieve this operation. This function is actually used to combine the keys of one array as the values ​​of another array into a new associative array. Next, we will explain how to use the array_combine function in PHP to combine two arrays into an associative array. Learn about array_comb

Detailed explanation of PHP array_fill() function usage Detailed explanation of PHP array_fill() function usage Jun 27, 2023 am 08:42 AM

In PHP programming, array is a very important data structure that can handle large amounts of data easily. PHP provides many array-related functions, array_fill() is one of them. This article will introduce in detail the usage of the array_fill() function, as well as some tips in practical applications. 1. Overview of the array_fill() function The function of the array_fill() function is to create an array of a specified length and composed of the same values. Specifically, the syntax of this function is

How to use the Array module in Python How to use the Array module in Python May 01, 2023 am 09:13 AM

The array module in Python is a predefined array, so it takes up much less space in memory than a standard list, and can also perform fast element-level operations such as adding, deleting, indexing, and slicing. In addition, all elements in the array are of the same type, so you can use the efficient numerical operation functions provided by the array, such as calculating the average, maximum, and minimum values. In addition, the array module also supports writing and reading array objects directly into binary files, which makes it more efficient when processing large amounts of numerical data. Therefore, if you need to process a large amount of homogeneous data, you may consider using Python's array module to optimize the execution efficiency of your code. To use the array module, you first need to

What are the common causes of ArrayStoreException in Java? What are the common causes of ArrayStoreException in Java? Jun 25, 2023 am 09:48 AM

In Java programming, array is an important data structure. Arrays can store multiple values ​​in a single variable, and more importantly each value can be accessed using an index. But while working with arrays, some exceptions may occur, one of them is ArrayStoreException. This article will discuss common causes of ArrayStoreException exceptions. 1. Type mismatch The element type must be specified when the array is created. When we try to store incompatible data types into an array, it throws

See all articles