相关疑难解决方法(0)

"this"关键字如何运作?

我注意到,似乎没有明确解释this关键字是什么以及如何在Stack Overflow站点上的JavaScript中正确(和错误地)使用它.

我亲眼目睹了一些非常奇怪的行为,并且无法理解为什么会发生这种行为.

this工作如何以及何时使用?

javascript this

1243
推荐指数
16
解决办法
39万
查看次数

在原型的方法中弄乱这个

好的,这是情况:

var vowels = ['a', 'i', 'y', 'e', 'o', 'u'];
String.prototype.isVowel = function () {
  return vowels.indexOf(this) !== -1;
};

alert('a'.isVowel());
Run Code Online (Sandbox Code Playgroud)

它会提醒"假",因为this引用不是'a'它的原型.为了使它工作,我们需要做一点改变.

String.prototype.isVowel = function () {
  return vowels.indexOf(this[0]) !== -1;
};

alert('a'.isVowel());
Run Code Online (Sandbox Code Playgroud)

这将起作用,因为String.prototype包含原始字符串的所有字符.实际上这是一个黑客,我不喜欢它.

但是,我们需要做些什么来使这个代码工作?

Number.prototype.is5 = function () { return this === 5; }

alert((5).is5()); //will alert 'false'
Run Code Online (Sandbox Code Playgroud)

或者我们只是不需要触摸原型?

javascript prototype

2
推荐指数
1
解决办法
82
查看次数

标签 统计

javascript ×2

prototype ×1

this ×1