0
我有dynamic code
即self creating
。在certain conditions
下,只有某些类型允许通过某些if statements
。如何通过原型传递undefined和null?
什么当前工作
- 对象
- 布尔
- 数
- 串
- 符号
- 功能
如果代码试图检查它是否是一个null
或undefined
一切什么打破了代码
- 空
- 不确定
分崩离析。或者如果它是null
或undefined
并且我想检查它是否是一个字符串,它就会崩溃。
我想知道是否有办法通过null
或undefined
?
演示
演示工作,直到它准备好检查null。
function type(obj) {
obj = Object.prototype.toString.call(obj).split(' ')[1].replace(']', '');
return obj;
}
String.prototype.is = function(what) {
if (/\b(string|str|s)\b/i.test(what)) {
return true;
}
return false;
};
Array.prototype.is = function(what) {
if (/\b(array|arr|a)\b/i.test(what)) {
return true;
}
return false;
};
Object.prototype.is = function(what) {
let results = type(this)
let regex = new RegExp('\\b' + results + '\\b', 'i')
if (regex.test(what)) {
return true;
}
return false;
};
unknown1 = 'hello world'
unknown2 = /a/g
unknown3 = null // Failed to pass through prototype - suppose to log true
unknown4 = undefined // Failed to pass through prototype - suppose to log false
unknown5 = 9
console.log(unknown1.is('string or regexp'))
console.log(unknown2.is('object'))
console.log(unknown3.is('null'))
console.log(unknown4.is('number'))
console.log(unknown5.is('string, number, or object'))
'null'和'undefined'是原语做不hav e包装对象,所以你不能设置一个原型方法,因此你为什么得到一个无法读取属性错误 –
是否有可能包装原型在'if语句'并返回'null'在它被破坏之前? –
请勿为此使用原型方法。 – Bergi