当前位置:首页>正文

答案中的构造函数是怎么调用的 javascript函数的调用模式有哪几种

2023-06-08 23:41:50 互联网 未知

答案中的构造函数是怎么调用的?

A A1调用的无参构造函数
A A2(2)调用的有参构造函数
A A3(A2)调用的复制构造函数
A1=A2.add (A3)
首先传递参数A add(A q) 调用的复制构造函数
add函数中 A temp调用的无参构造函数
return temp调用的复制构造函数
结果就是2 2=4

javascript函数的调用模式有哪几种

函数调用

   函数调用模式中this指全局对象(window)

  var f1 = function() {
    alert("这个是函数调用")
    alert(this)
  }
  f1()
方法调用

 由对象调用方法(当对象为null的时候,函数进行函数调用模式,当对象不为null的时候,函数实现方法调用模式)

 在方法调用模式中 this 表示当前对象

  var o = {name:"赵建宇"}
  o.say = function() {
    alert(this.name)
    alert(this)
  }
  o.say()

构造函数

   任何一个函数放在new 后面就是构造函数,构造函数的this是构造函数返回的对象,构造函数的return发生变化,如果返回的是对象,直接返回,否则返回创建出来的对象


  var Person = function(n) {
    this.name = n
      return {sex:"男"}
     // return 123
  }
  var p = new Person()

函数的apply调用模式和call调用模式
 语法:
    函数名.apply(对象, [参数数组])
  函数名.call(对象, 参数列表)


  var func = function() {
    this.name = "马伦"
    this.say = function(){alert(this.name   "牛逼")}
  }
  func.apply(null)   // 等价于 func()

javascript构造函数

在这里Box就相当于一个类.
this.name、this.age是这个类的属性,this.run则是这个类的方法


this.name=name  是说的name的值给Box的name属性.
是如何调用的呢?
代码:
function Box(name, age) {//构造函数模式
this.name = name
this.age = age
this.run = function () {
   return this.name   this.age   运行中...
}
}
var boxobj=new Box("百度",15)//这个意思是 创意见Box对象boxobj并初始化name和age属性
alert(boxobj.run())//调用boxobj方法并alert出返回值 返回内容是:百度15运行中...

javascript中构造器调用模式中的this

1:

构造函数的运作可以这样理解:
如您的这个代码

var Quo = function(){ this.a= 0 }
var MyQuo = new.Quo()
其中的new 运算符,先产生了一个空对象{},然后生成一个this指针,将this指针指向这个空对象;运行构造函数时,就相当于“{}.a=0”一样的为这个对象动态添加属性。最后将这个生成好的对象付给MyQuo.
2:this的意义,就是动态的指向当前代码所属的对象。
function(){ return this.a }
如果不用new运算符,单单的运行这个函数Quo,就会为window添加一个属性a=0,因为这段代码运行的时候,没有所属对象,默认就归给window了。如果用了new,this就指代生成的对象了。
静态的this,很难说指向了谁,这需要看代码的运行上下文。
3:prototype的本质是一个对象, 是属于构造函数的属性。对它的理解,就是用此构造函数生成的对象共享prototype对象,如果有相同的属性,则覆盖。
var Quo = function(){ this.a= 0 }
Quo.prototype.get_status = function(){ return this.a }

var MyQuo = new.Quo()
最后的MyQuo有两个属性,MyQuo.a属性,是由构造函数动态添加的。MyQuo.get_status属性,是从构造函数的原型prototype 继承得到的
原型中的this,自然动态的指向由构造函数所生成的对象了。

随便看看