JS之function

  这阵子因为要学习React Native ,而RN必备的知识就是JS,所以开始学习起来了Js,在此声明写博客就是为了更好的学习,总结一些我学习过程中知识点,有不同意见的请尽情发表!


1、方法声明
function functionname()
{
这里是要执行的代码
}
例如:
/创建对象
var person = new Object();
// 创建方法
person.eat = function(){
  return "我吃了";
} ;
例2:
工厂模式:通过一个函数创建对象。
// 工厂模式
function producePerson(sex, age, name) {
  // body...
  var person = new  Object;
  person.sex = sex;
  person.age = age;
  person.name = name;
  person.eat = function(){
  return "我吃了";
  } ;

  return person;
};
//通过方法创建对象
var person2 = producePerson("男",19,"Eric");
例3:构造函数模式
//构造函数模式
function producePerson2(sex,age,name){
    this.sex = sex;
    this.age = age;
    this.name = name;
    this.eat = function(){
         return "我吃了3";
    };
}
//构造函数模式
function producePerson2_2(sex,age,name){
   if (this instanceof producePerson2_2 ) {
       this.sex = sex;
       this.age = age;
       this.name = name;
       this.eat = function(){
           return "我吃了3";
       };
  }else{
       throw new Error("please add 'new' to make a instance");
  }
}
var person3 = new producePerson2("男",19,"ERIc");
注意:这个new关键字是必须,如果不加,clock就不会当成构造函数调用,而只是一个普通的函数。同时,还会意外地给他的外部作用域即window添加属性,因为此时构造函数内部的this已经映射到了外部作用域了。所以为了安全起见,可以如producePerson2_2。构造函数的缺点:由于this指针在对象实例的时候发生改变指向新的实例。这时新实例的方法也要重新创建,如果n个实例就要n次重建相同的方法。
例4:原型模式
function clock(hour,minute,second){
 }
 clock.prototype.hour=11;
 clock.prototype.minute=11;
 clock.prototype.second=11;
 clock.prototype.showTime=function(){
   return(this.hour+":"+this.minute+":"+this.second);
 };
var clock = new  clock();
//这个有问题?????
 function clock2(hour,minute,second){
 }
 clock.prototype = {
  constructor:clock,    //必须手动设置这个属性,不然就断了与构造函数的联系了。没有实例共享原型的意义了。
  hour:12,
  minute:12,
  second:12,
  showTime:function(){
   return(this.hour+":"+this.minute+":"+this.second);
  }
 };
首先,每个函数都有一个prototype(原型)属性,这个指针指向的就是clock.prototype对象。而这个原型对象在默认的时候有一个属性constructor指向clock,这个属性可读可写。而当我们在实例化一个对象的时候,实例newClock除了具有构造函数定义的属性和方法外(注意,只是构造函数中的),还有一个指向构造函数的原型的指针,ECMAScript管他叫[[prototype]],这样实例化对象的时候,原型对象的方法并没有在某个具体的实例中,因为原型没有被实例。
例5 构造-原型模式
 function clock3(hour,minute,second){
  this.hour = hour;
  this.minute = minute;
  this.second = second;
 }
 clock.prototype.showTime=function(){
   return(this.hour+":"+this.minute+":"+this.second);
};
 var newClock = new clock3(12,12,12);
这个有问题??????!!!!
2、调用方法
objectName.methodName()
更多参考:JS定义类和对象




### 回答1: JavaScript 中的函数是可以重复使用的代码块。您可以通过向函数传递参数来调用函数,并且函数可以返回值。 JavaScript 中定义函数的基本语法如下: ``` function functionName(parameters) { // code to be executed } ``` 您可以通过在函数名后面加上圆括号,并在括号内传递所需的参数来调用函数。例如: ``` functionName(arguments); ``` 例如,下面是一个简单的 JavaScript 函数,该函数接受两个数字参数,并返回它们的和: ``` function addNumbers(a, b) { return a + b; } var sum = addNumbers(2, 3); console.log(sum); // Output: 5 ``` 我希望这个回答对您有帮助。如果有任何其他问题,请随时告诉我。 ### 回答2: JS函数是一种用于执行特定任务的可重复使用的代码块。它由关键字function开始,后跟函数的名称和一对圆括号。函数的名称用于在需要时引用函数。圆括号内可以包含参数,这些参数是函数执行所需的输入值。函数内的代码使用花括号括起来,并且当函数被调用时,其中的代码将被执行。 JS函数在程序中起到了模块化的作用,可以避免重复编写相同的代码,提高了代码的可读性和维护性。通过传递参数,函数可以根据不同的输入值来执行不同的操作或返回不同的结果。 在JS中,函数还可以作为变量进行传递和操作。这是因为函数本身属于一种对象类型。函数可以被赋值给变量,并通过变量来调用函数。这种特性使得JS能够支持函数式编程的风格。 在定义函数时,可以使用return语句来指定函数的返回值。如果未指定返回值,默认情况下,函数将返回undefined。返回的值可以用于在程序的其他部分进行处理或展示。 JS函数的作用范围可以是全局的或局部的。全局函数可以在程序的任何地方调用,而局部函数则只能在定义它的代码块内部进行调用。 总之,JS函数是一种非常重要的概念,它允许我们将代码封装成可重复使用的模块,提高了代码的可读性和维护性。它是JS编程中不可或缺的一部分。 ### 回答3: JavaScript(简称JS)是一种常用的脚本编程语言,在网页开发中经常使用。JS function(函数)是JS中的一种重要的组成部分。 JS function是一段封装了特定功能的可重复使用的代码块。通过将代码封装在函数中,我们可以用一个函数名称来调用和执行一组代码,而不需要多次重复编写相同的代码。JS function可以接收输入参数并返回输出结果或执行特定的操作。 JS function的语法通常是由关键字"function"、函数名称、括号和花括号组成。函数名称用于唯一标识函数而函数体则包含了具体的代码逻辑和功能。 JS function可以有零个或多个参数,在函数定义时参数名称可以指定,调用函数时则可以传递对应的参数值。JS function还可以使用return关键字来返回一个值,这样调用函数的代码可以获得该返回值并进行后续的处理。 通过使用JS function,我们可以将大型的程序分解为多个小的函数来降低代码的复杂性和提高可维护性。JS function可以封装常见的功能,例如计算、操作DOM元素、事件处理、网络请求等等。函数也可以互相调用,形成函数之间的关联关系,进一步提高代码的重用性和可读性。 总而言之,JS function是一种可以封装特定功能代码块的重要组成部分。它提供了代码重用、可维护性和可读性等优势,是JS中常用的编程工具之一。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值