Définition de la fonction
La fonction contient un ensemble d'instructions, qui sont les unités de module de base de JavaScript et sont utilisées pour la réutilisation du code, la dissimulation d'informations et les appels combinés. Les fonctions sont utilisées pour spécifier le comportement des objets
Quatre modes d'appel de fonctions et l'initialisation de celui-ci
Le premier : mode d'appel de méthode
Les exemples suivants démontrent l'appel via le mode d'appel de méthode, il est lié à l'objet qui possède la méthode. Par exemple :
var person = { name: "defaultName", setName : function(name){ this.name = name; } }; person.setName("zhangsan"); alert(person.name);
Deuxième : mode d'appel de fonction
L'exemple suivant prouve que lorsqu'il est appelé via le mode d'appel de fonction, celui-ci est lié à l'objet global. Tels que :
var test = add(value1, value2); var name = "defaultName"; var person = { name: "zhangsan", // person中定义的name getName : function(){ // 通过此方法可以将test函数的this改变为person的this对象 var that = this; // 解决方案 // getName中定义的name var name = "lisi"; var test = function(){ // 通过that来访问person中的对象 // this指向Global对象 // this.name = defaultName // that.name = zhangsan alert([this.name, that.name]); }; test(); // 函数调用模式 } } person.getName();
Troisième : mode d'appel du constructeur
// 定义一个Person的构造器,在调用时一定要用new调用 var Person = function(name){ this.name = name; } // 添加一个方法到Person Person.prototype.getName = function(){ return this.name; }; // 构造一个Person对象 var person = new Person("zhangsan"); alert(person.getName()); // 调用getName获取person对象中name属性的值
Quatrième : appliquer le mode d'appel
<script type="text/javascript"> // 定一个累加方法。如sum(1,2,3,4...) // 该方法位于window执行环境中。 var displayName = function(){ alert("sum的执行环境: " + typeof(this)); alert("Name: " + this.name); // 取出当前执行环境中name属性 } // 定一个Person对象 var Person = { name: "zhangsan" }; displayName.apply(Person); </script>
La différence entre appliquer et appeler
// 定一个对象,包含一个add方法,返回a、b的和 var Person = { 'add' : function(a, b){ return a + b; } }; // 显示a、b的和 function showInfo(a, b){ alert(this.add(a, b)); } // 通过apply方法改变showInfo方法的this指向 //showInfo(1, 3); // 对象不支持次对象 showInfo.apply(Person, [1, 3]); showInfo.call(Person, 1, 3); // 从上面可以看出,apply和call的区别是apply接受一个数组作为被调函数的参数, // 而call是通过将被调函数的所有参数以逗号分隔的形式展开
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!