私は(おそらくそれの私のブラウザの考えをか)JavaScriptでクセを発見:文字列が `this`になると文字列が切り取られるのはなぜですか?
var s = "Hello, world";
function foo(arg)
{
console.log(arg);
console.log(this);
}
foo.call(s, s);
Firebugのコンソールで上記を実行している私が手に、有効:
Hello, world
String { 0="H", 1="e", more...}
はなぜ文字列が自動的に点灯取得ん奇妙なオブジェクトになる前にに渡されるthis
?
私が奇妙なオブジェクトと呼んでいるのは、jQueryがそれを嫌うからです。 this
はちょうどオブジェクト(私は文字列がオブジェクトである知っているが、彼らはまた、文字列である)であるため、
$.each(["one", "two", "three"], function(i, x) {
$('<p></p>').text(x) .appendTo('body'); // Works
$('<p></p>').text(this).appendTo('body'); // Doesn't work
});
さて、 'this'は' window'を参照してください。 機能。 – mc10
面白い振る舞い。間違った数の引数を渡すことに関連していると仮定します。 argsの数が変わる場合は、argumentsオブジェクトを使用します。 –