Notas de estudio de JavaScript siete funciones

Uno, función función

  1. Una función también es un objeto, algunas funciones (código) se pueden encapsular en la función y estas funciones (código) se pueden ejecutar cuando sea necesario.
  2. Algunos códigos se pueden guardar en la función para ser llamados cuando sea necesario.

En segundo lugar, use el constructor para crear un objeto de función

Rara vez usamos constructores para crear objetos de función en el desarrollo real

var fun=new Function();
//构造函数来创建函数对象
  1. Cuando se usa typeof para verificar un objeto de función, se devuelve la función.
  2. El código que se va a encapsular se puede pasar al constructor en forma de cadena.
var fun=new Function("console.log('Hello 这是我的第一个函数');");
  1. El código encapsulado en la función no se ejecutará inmediatamente.

  2. El código de la función se ejecutará cuando se llame a la función

  3. Sintaxis de la función de llamada : objeto de función ()

  4. Cuando se llama a la función, el código encapsulado en la función se ejecutará en orden

var fun=new Function("console.log('Hello 这是我的第一个函数');");
fun();//调用函数
结果:Hello 这是我的第一个函数

Tres, use declaraciones de función para crear funciones

语法:
    function 函数名([形参1,形参2...形参n]){
    
    
             语句...(需要封装的代码)
}
语法:
    function fun2(){
    
    
        console.log('Hello 这是我的第二个函数');
}
//调用fun2
fun2();

Cuatro, usa expresiones de función para crear una función

var 函数名= function([形参1,形参2...形参n]){
    
    
             语句...(需要封装的代码);
}
function(){
    
    
  console.log("我是一个匿名函数中封装的代码");
}

Primero cree una función anónima, luego defina una variable fun3 y luego asigne el objeto de función anónima a la variable.

//定义变量fun3保存函数对象
var fun3=function(){
    
    
  console.log("我是一个匿名函数中封装的代码");
}
fun3();

Cinco, los parámetros de la función.

  1. Se pueden especificar uno o más parámetros formales en el () de la función. Varios parámetros formales están separados por comas. Declarar un parámetro formal equivale a declarar la variable correspondiente dentro de la función, pero no asignar un valor.
    function sum(a,b){
    
    
        console.log(a+b);
}
  1. Al llamar a una función, puede especificar los parámetros reales en (). El parámetro actual se asignará al parámetro formal correspondiente.
sum(1,2);//调用函数sum,指定实参
  1. Al llamar a una función, el analizador no verificará el tipo del parámetro real, así que tenga cuidado, si es posible recibir un parámetro ilegal, puede verificar el tipo de parámetro.
  2. Al llamar a una función, el analizador no verificará el número de parámetros reales y no se asignarán parámetros reales redundantes.
  3. Si el número de parámetros reales es menor que el número de parámetros formales, el nuevo parámetro sin los parámetros reales correspondientes quedará indefinido.
  4. Los parámetros reales de la función pueden ser de cualquier tipo de datos.

Seis, el valor de retorno de la función return

  1. Puede utilizar return para establecer el valor de retorno de la función
    2. Sintaxis: valor de retorno (variable);
  2. El valor después de la devolución se devolverá como resultado de la ejecución de la función y se puede definir una variable para recibir este resultado.
  3. En la función, la instrucción después de la devolución no se ejecutará
function sum(a,b,c){
    
    
				var d=a+b+c;
				return d;不写
			}
			//调用函数
			//变量result的值就是函数的执行结果
			//函数返回什么result的值就是什么
			var result=sum(1,2,3);
			console.log(result);
  1. Si la declaración de retorno no va seguida de ningún valor, es equivalente a devolver un indefinido. No escribir tampoco está definido.
    5. Cualquier tipo de valor se puede devolver después de la devolución. También puede ser un objeto
function people(){
    
    
				  return {
    
    name:"lili"}; 	 
		  }
		 var a= people();//函数people作为实参传值
		 console.log(a);

También puede ser una función

Siete, el parámetro real puede ser cualquier valor

  1. El parámetro real puede ser cualquier tipo de datos o un objeto. Cuando tenemos demasiados parámetros, podemos encapsular los parámetros en un objeto y luego pasar los parámetros reales a través del objeto
 function people(o){
    
    //o是形参,obj是一个实参对象,obj将赋值给o
	console.log("我叫"+o.name+",我今年"+o.age+"岁了,我是"+o.gender+"生");
	 }
		  var obj = {
    
    
			  name:"lili",
			  age:22,
			  gender:"女"
		  };
		  people(obj);//将一个对象obj作为实参传入
  1. El parámetro real puede ser un grupo de objetos o una función.
  
function people(o){
    
    //o是形参,obj是一个实参对象,obj将赋值给o
			  console.log("我叫"+o.name+",我今年"+o.age+"岁了,我是"+o.gender+"生");
		  }
		  var obj = {
    
    
			  name:"lili",
			  age:22,
			  gender:"女"
		  }; 
		   people(obj);//将一个对象obj作为实参传入
 function fun(result){
    
    
			  //console.log("这是一个函数作为实参的例子:"+result);
			 result(obj);
		
		  }
		  fun(people);//函数people作为实参传值
  1. Puede pasar una función anónima como argumento a otra función.
function test(){
    
    }
test()是调用函数对象
fun(test(10))相当于fun这个函数对象调用了test函数以10为形参的返回结果
test是函数对象,相当于与直接使用这个函数对象
 function fun1(){
    
    
				  return {
    
    name:"lili"}; 	 
		  }
		  function fun2(a){
    
    
			  console.log( a.name); //lili
			  
		  }
		  fun2(fun1());//调用fun1函数对象的返回值

Ocho, rompe y sigue y vuelve

  1. Break puede salir del bucle actual, y no se ejecutará ninguno después de los tiempos del bucle actual.
  2. continue es equivalente a omitir el bucle actual y continuar ejecutándose después de omitir el bucle actual.
  3. return puede terminar toda la función

Nueve, ejecute la función inmediatamente

function(){
    
    
  console.log("我是一个匿名函数中封装的代码");
}
//给匿名函数加一个括号表示一个整体
//在这个函数对象后面再加一个括号,表示调用这个函数对象,这是一个立即执行函数。
(function(){
    
    
  console.log("我是一个匿名函数中封装的代码");
})();

Función de ejecución inmediata: la función se define y se llama inmediatamente, este tipo de función se denomina función de ejecución inmediata, y la función de ejecución inmediata se suele ejecutar una sola vez.

Diez, la clase constructora

  1. Cree un constructor, utilizado específicamente para crear un objeto Person, para todos los diferentes tipos del objeto.
  2. El constructor es una función ordinaria y el método de creación no es diferente del ordinario, la diferencia es que la primera letra del constructor se escribe habitualmente en mayúscula.
  3. La función ordinaria se llama directamente y el constructor necesita usar la nueva palabra clave para llamar
function Person(){
    
    	
			}
			//new构造一个新对象
			var per= new Person();
			console.log(per);//{}
  1. El flujo de ejecución del constructor:
    (1) Cree un nuevo objeto inmediatamente
    (2) Establezca el objeto recién creado como este en la función, y utilícelo para referirse al objeto recién creado en el constructor. Per contiene la dirección del objeto recién creado, y esto apunta al objeto recién creado, que es el objeto por.
    (3) Ejecute el código en la función línea por línea
    (4) Devuelve el objeto de la nueva clave como el valor de retorno `
function Person(){
    
    	
     this.name="孙悟空";
     this.age=18;
     this.sayName=function(){
    
    
       console.log(this.name);
};
			}
			//new构造一个新对象
			var per= new Person();
			console.log(per);

Valor de pase:

function Person(name,age){
    
    	
     this.name=name;
     this.age=age;
     this.sayName=function(){
    
    
       console.log(this.name);
};
			}
			//new构造一个新对象
	var per= new Person("孙悟空",18);
	var per2= new Person("猪八戒",28);
			console.log(per);
  1. Los objetos creados con el mismo constructor se denominan objetos de primera clase. Por ejemplo, per1 y per2 son objetos del mismo tipo, todos los cuales pertenecen a la clase persona. Un constructor también se llama clase.
  2. Usaremos un constructor para crear un objeto llamado instancia de esta clase. Por ejemplo, per es una instancia de la clase Person.
  3. Utilice instanceof para comprobar si un objeto es una instancia. Sintaxis: si el objeto instanceof constructor devuelve verdadero, no falso
console.log(per instanceof Person);
  1. Todos los objetos son descendientes de Object, por lo que cualquier objeto y Object devolverán verdadero al realizar la verificación de instancia.

  2. Cree un constructor Person. En el constructor Person, se agrega un método sayName para cada objeto.

  3. En la actualidad, nuestro método se crea dentro del constructor, es decir, se crea un nuevo método sayName cada vez que se ejecuta el constructor, y el sayName de todas las instancias es único.

  4. Esto lleva a la creación de un nuevo método cuando el constructor se ejecuta una vez, y cuántos métodos nuevos se crean tantas veces como se ejecuta, estos métodos son todos iguales, lo cual es completamente innecesario.

  5. Definir el método sayName en el ámbito global

function Person(name,age){
    
    	
     this.name=name;
     this.age=age;
     this.sayName=fun;
			}
//将sayName方法放在全局作用域中定义
function fun(){
    
    
       console.log(this.name);
};
			//new构造一个新对象
	var per= new Person("孙悟空",18);
	var per2= new Person("猪八戒",28);
			console.log(per);
  1. Pero definir la función en el ámbito global contamina el espacio de nombres del ámbito global y no es seguro definirlo en el ámbito global.
  2. Tome las notas de estudio 9-prototipo
	function Person(name,age){
    
    	
						     this.name=name;
						     this.age=age;
						   
									}

									//new构造一个新对象
							var per= new Person("孙悟空",18);
							var per2= new Person("猪八戒",28);
							Person.prototype.sayName=function(){
    
    
                                    console.log(this.name);
									}
							console.log(per.sayName());

Supongo que te gusta

Origin blog.csdn.net/weixin_45636381/article/details/112755663
Recomendado
Clasificación