Javascript 防止“的类型转换”;这";在使用apply调用函数期间
Servus忍者 这是ecmascript 5规范(第118页)在Javascript 防止“的类型转换”;这";在使用apply调用函数期间,javascript,Javascript,Servus忍者 这是ecmascript 5规范(第118页)在Function.prototype.apply(thisArg,argArray)一节中所说的: 注意:thisArg值作为this值在未经修改的情况下传递。这是对第3版的更改,其中未定义或空thisArg被替换为全局对象,ToObject应用于所有其他值,结果作为This值传递 这听起来很有希望,但是这个规范还没有在任何现代浏览器中实现,所以我们必须处理第三个规范的实现 我现在的问题是“如何使语句的类型变为真?” var fo
Function.prototype.apply(thisArg,argArray)
一节中所说的:
注意:thisArg值作为this值在未经修改的情况下传递。这是对第3版的更改,其中未定义或空thisArg被替换为全局对象,ToObject应用于所有其他值,结果作为This值传递
这听起来很有希望,但是这个规范还没有在任何现代浏览器中实现,所以我们必须处理第三个规范的实现
我现在的问题是“如何使语句的类型变为真?”
var foo = function (arg1, arg2) {
alert(typeof this == "string");
};
foo.apply("bar", ["arg1", "arg2"]);
有什么想法吗?JavaScript中有两种类型的字符串
有字符串类型的
"hello"
还有对象类型的
new String("hello");
apply
将始终包装作为对象传递的任何值,因为您需要通过this
关键字使用它。JavaScript中有两种类型的字符串
有字符串类型的
"hello"
还有对象类型的
new String("hello");
apply
将始终包装您作为对象传递的任何值,因为您需要通过this
关键字使用它。使用此字符串实例(仅限同一窗口)或使用object.prototype.toString.call(此)===“[对象字符串]”
(跨窗口工作).使用此字符串实例(仅限同一窗口)或使用Object.prototype.toString.call(此)==“[对象字符串]”
(跨窗口工作)。目前唯一的一件事是检查类型
使用Object.prototype.toString.call(string)=“[Object string]”;
并将此
转换回字符串,如下所示:
var isString = function(string) {
return Object.prototype.toString.call(string) == "[object String]";
};
var isNumber = function(number) {
return Object.prototype.toString.call(number) == "[object Number]";
};
var toRightType = function(mess) {
if(isString(mess)) {
mess = mess+"";
}
if(isNumber(mess)) {
mess = mess+0;
}
return mess;
};
var foo = function () {
var _this = toRightType(this);
};
foo.apply("bar");
这是javascript中令人悲伤的章节之一:(目前唯一的事情是检查类型
使用Object.prototype.toString.call(string)=“[Object string]”;
并将此
转换回字符串,如下所示:
var isString = function(string) {
return Object.prototype.toString.call(string) == "[object String]";
};
var isNumber = function(number) {
return Object.prototype.toString.call(number) == "[object Number]";
};
var toRightType = function(mess) {
if(isString(mess)) {
mess = mess+"";
}
if(isNumber(mess)) {
mess = mess+0;
}
return mess;
};
var foo = function () {
var _this = toRightType(this);
};
foo.apply("bar");
这是javascript中最悲伤的章节之一:(