上記の概念について言及する前に、まず JavaScript の関数の暗黙的なパラメーターについて話したいと思います。
引数
arguments このオブジェクトは、実行される関数とそれを呼び出す関数のパラメーターを表します。 [function.]arguments[n] パラメータ
関数: オプション。現在実行中の Function オブジェクトの名前。
n: オプション。 Function オブジェクトに渡されるパラメーター値の 0 から始まるインデックス。説明 Arguments は、関数呼び出し時に指定されたパラメータに加えて作成される非表示オブジェクトです。 Arguments は配列に似ていますが、配列ではないオブジェクトです。配列と同じアクセス プロパティとメソッドを持ち、対応する単一パラメーターの値に argument[ を通じてアクセスできるためです。 n] であり、配列長属性 length を持ちます。また、arguments オブジェクトには関数宣言で定義されたパラメータリストに限らず、実際に関数に渡されるパラメータが格納されており、明示的に作成することはできません。引数オブジェクトは関数の先頭でのみ使用できます。
次の例では、これらのプロパティの詳細を示します
//引数の使用法 object
function ArgTest(a, b){
var i, s = "ArgTest 関数が必要です ";
var numargs = argument.length; // を取得します。渡されるパラメータの数値。
var expargs = ArgTest.length; // 期待されるパラメータの値を取得します。
if (expargs s = expargs " 引数。";
else
s = expargs " 引数。";
if (numargs s = numargs " が渡されました。";
else
s = numargs " が渡されました。";
s = " "
for (i =0; i
}
return(s); // パラメータリストを返します。
}
引数が配列 (Array クラス) ではないことを説明するコードをここに追加しました:
Array.prototype.selfvalue = 1;
alert(new Array().selfvalue);
function testAguments(){
alert (arguments.selfvalue);
}
コードを実行すると、最初のアラートに 1 が表示されることがわかります。これは、配列オブジェクトが値を持つ selfvalue 属性を持っていることを意味します。 1 であり、関数 testAguments を呼び出すと、「未定義」が表示されます。これは、それが引数のプロパティではないこと、つまり、引数が配列オブジェクトではないことを示しています。
ここに添付されているのは、誰もが推奨する簡単なメソッドです:alert(argumentsinstanceofArray);
alert(argumentsinstanceofObject);
発信者
現在の関数を呼び出した関数への参照を返します。
functionName.caller
functionName オブジェクトは、実行される関数の名前です。
説明
関数の場合、caller 属性は関数の実行時にのみ定義されます。関数がトップレベルから呼び出された場合、caller には null が含まれます。 caller 属性が文字列コンテキストで使用されている場合、結果は functionName.toString と同じになります。つまり、関数の逆コンパイルされたテキストが表示されます。
注: Function.toString() で逆コンパイルを実現できます。再帰関数を追加すると、関数はより強力になります。
次の例は、caller 属性の使用法を示しています。
// 呼び出し元デモ {
function callerDemo() {
if (callerDemo.caller) {
var a= callerDemo.caller.toString( );
();
}
呼び出し先
実行中の Function オブジェクト (指定された Function オブジェクトの本体) を返します。 [function.]arguments.callee オプションの関数パラメータは、現在実行されている Function オブジェクトの名前です。 callee 属性の初期値は、実行中の Function オブジェクトであることに注意してください。 callee 属性は argument オブジェクトのメンバーであり、関数オブジェクト自体への参照を表します。これは、匿名関数の再帰や関数のカプセル化を保証するのに役立ちます。たとえば、次の例では、自然な関数の合計を再帰的に計算します。 1からnまでの数字。このプロパティは、関連する関数が実行されている場合にのみ使用できます。また、呼び出し先には長さ属性があり、検証にはこの方が適している場合があることにも注意してください。 argument.length は実際のパラメータの長さ、arguments.callee.length は仮パラメータの長さです。これにより、呼び出し時の仮パラメータの長さが実際のパラメータの長さと一致しているかどうかを判断できます。
例
//callee can printそれ自体
function calleeDemo() {
alert(arguments.callee);
}
//パラメータの検証に使用されます
function calleeLengthDemo(arg1, arg2) {
if (arguments.callee) length= =arguments.callee.length) {
window.alert("仮パラメータと実際のパラメータの長さが正しいことを確認してください。");
return;
alter("仮パラメータ長さ: "arguments.callee.length);
}
}
//再帰計算
var sum = function(n){
if(n< = 0){ if (1==n) return 1;
else return n sum (n-1);
}
呼び出し時:alert(sum(100)) ;
関数には sum 自体への参照が含まれています。関数名は単なる変数名です。この場合、関数内で sum を呼び出すことは、それ自体を呼び出していることを反映できません。より良い方法。
apply と call
どちらも、実行する関数を別のオブジェクトにバインドします。異なるのはパラメーターの定義方法だけです。
apply(thisArg,argArray); call(thisArg[,arg1,arg2…] ]);
つまり、すべての関数内の this ポインターには thisArg の値が割り当てられ、argArray が有効な配列でない場合、または引数でない場合に関数を別のオブジェクトのメソッドとして実行するという目的を実現できます。オブジェクトの場合、 TypeError が発生します。
argArray も thisArg も指定されていない場合は、Global オブジェクトが thisArg として使用され、パラメータを渡すことはできません。 call の説明 call メソッドは、関数のオブジェクト コンテキストを初期コンテキストから thisArg で指定された新しいオブジェクトに変更します。 thisArg パラメーターが指定されていない場合は、Global オブジェクトが thisArg として使用されます。 関連ヒント: call と apply を使用して別の関数 (クラス) を適用する場合には、別のトリックがあります ( class) 別の関数 (クラス) のメソッドまたはプロパティを持ち、「継承」とも呼ばれます。
以下の例を見てください:
コードをコピーします
コードは次のとおりです:
function extend() {
base.call(this);
window.alert(member);
window.alert(this.method);
}
上記の例からわかるように、extend は呼び出し後に Base のメソッドとプロパティを継承できます。ちなみに、JavaScript フレームワークのプロトタイプでは apply を使用してクラスを定義するパターンを作成しています。実装コードは次のとおりです。
コードをコピー
コードは次のとおりです:
var Class = {
create: function() {
return function() {
this.initialize.apply(this, argument);
}
}
}
分析: コードの観点から見ると、このオブジェクトにはメソッド Create が 1 つだけ含まれています。これは関数、つまりクラスを返します。ただし、これは、initialize を呼び出すクラスのコンストラクターでもあり、このメソッドはクラスの作成時に定義される初期化関数です。このようにして、クラス作成パターンの例をプロトタイプで実装できます:
var vehicle=Class.create();
vehicle.prototype={
初期化:function(type){
this.type=type;
}
showSelf:function( ){
alter("この車両は " this.type) >

如何使用JS和百度地图实现地图平移功能百度地图是一款广泛使用的地图服务平台,在Web开发中经常用于展示地理信息、定位等功能。本文将介绍如何使用JS和百度地图API实现地图平移功能,并提供具体的代码示例。一、准备工作使用百度地图API前,首先需要在百度地图开放平台(http://lbsyun.baidu.com/)上申请一个开发者账号,并创建一个应用。创建完成

如何使用JS和百度地图实现地图多边形绘制功能在现代网页开发中,地图应用已经成为常见的功能之一。而地图上绘制多边形,可以帮助我们将特定区域进行标记,方便用户进行查看和分析。本文将介绍如何使用JS和百度地图API实现地图多边形绘制功能,并提供具体的代码示例。首先,我们需要引入百度地图API。可以利用以下代码在HTML文件中导入百度地图API的JavaScript

js字符串转数组的方法:1、使用“split()”方法,可以根据指定的分隔符将字符串分割成数组元素;2、使用“Array.from()”方法,可以将可迭代对象或类数组对象转换成真正的数组;3、使用for循环遍历,将每个字符依次添加到数组中;4、使用“Array.split()”方法,通过调用“Array.prototype.forEach()”将一个字符串拆分成数组的快捷方式。

如何使用JS和百度地图实现地图热力图功能简介:随着互联网和移动设备的迅速发展,地图成为了一种普遍的应用场景。而热力图作为一种可视化的展示方式,能够帮助我们更直观地了解数据的分布情况。本文将介绍如何使用JS和百度地图API来实现地图热力图的功能,并提供具体的代码示例。准备工作:在开始之前,你需要准备以下事项:一个百度开发者账号,并创建一个应用,获取到相应的AP

js中new操作符做了:1、创建一个空对象,这个新对象将成为函数的实例;2、将新对象的原型链接到构造函数的原型对象,这样新对象就可以访问构造函数原型对象中定义的属性和方法;3、将构造函数的作用域赋给新对象,这样新对象就可以通过this关键字来引用构造函数中的属性和方法;4、执行构造函数中的代码,构造函数中的代码将用于初始化新对象的属性和方法;5、如果构造函数中没有返回等等。

这篇文章主要为大家详细介绍了js实现打字小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。

php在特定情况下可以读js内部的数组。其方法是:1、在JavaScript中,创建一个包含需要传递给PHP的数组的变量;2、使用Ajax技术将该数组发送给PHP脚本。可以使用原生的JavaScript代码或者使用基于Ajax的JavaScript库如jQuery等;3、在PHP脚本中,接收传递过来的数组数据,并进行相应的处理即可。

js全称JavaScript,是一种具有函数优先的轻量级,直译式、解释型或即时编译型的高级编程语言,是一种属于网络的高级脚本语言;JavaScript基于原型编程、多范式的动态脚本语言,并且支持面向对象、命令式和声明式,如函数式编程。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

SublimeText3 中国語版
中国語版、とても使いやすい

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

ドリームウィーバー CS6
ビジュアル Web 開発ツール

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、
