【问题标题】:Why is 'this' used in javascript while declaring a function to reference an inherited parameter?为什么在声明函数以引用继承参数时在 javascript 中使用“this”?
【发布时间】:2017-04-08 18:49:28
【问题描述】:

我是 javascript 新手,我不明白为什么将“this”用作调用原型的实际参数旁边的参数...在提供的图像中,您可以看到它的使用示例。 那么为什么需要添加“this”作为参数呢?它的具体作用是什么?

'use strict';
function Animal(voice){
this.voice = voice || 'grunt'
}

Animal.prototype.speak = function(){
 display(this.voice)
}

function Cat(name, color){
 Animal.call(this, 'Meow')
 this.name = name
 this.color = color
}

Cat.prototype = Object.create(Animal.prototype)

var Fluffy = new Cat('Fluffy', 'White')

Fluffy.speak()

【问题讨论】:

  • 不显示代码的图片。显示代码。更多:meta.stackoverflow.com/questions/285551/why-may-i-not-upload-images-of-code-on-so-when-asking-a-question/285557#285557
  • 如果您在启动函数调用时包含 HTML 代码的副本,它将有助于以与您的项目最相关的方式回答您的问题 :)
  • 调用和应用是传递调用函数的引用的一种方式,它设置调用引用

标签: javascript prototype this


【解决方案1】:

这个

Animal.call(this, 'Meow');

...用于在对Animal 的调用中,this 将引用它在Cat 中引用的同一事物,以便Animal 在同一实例上设置其实例属性。如果你刚刚做了Animal('Meow'),当Animal 写信给this.voice 时,它会抛出错误(在严格模式下)或添加一个名为voice 的全局变量(在松散模式下),这两者都不是我们想要的结果。

更多:

【讨论】:

    猜你喜欢
    • 2018-06-06
    • 2018-01-31
    • 1970-01-01
    • 2013-11-22
    • 1970-01-01
    • 1970-01-01
    • 2013-12-11
    • 1970-01-01
    • 2018-11-06
    相关资源
    最近更新 更多