Предупреждение: создание расширений для собственного объекта и/или свойств считается плохой формой и неизбежно вызывает проблемы. Не используйте это, если это для кода, который вы используете не для вас, или если вы не знаете, как правильно его использовать.
Я знаю, что вы можете использовать Object
, String
, Number
, Boolean
и т.д. для определения метода, примерно так:
String.prototype.myFunction = function(){return this;} //only works on strings.
Но мне нужно иметь возможность использовать это значение для любого значения и получать доступ к значению в функции.
Я googled и посмотрел здесь, но не нашел ничего подходящего.
2/18/15 Изменить: есть ли какое-либо обходное решение для того, чтобы это было свойством любого объекта, если я использую Object.prototype
?
Per Request, вот текущая функция, которая используется для isString()
function isString(ins) {
return typeof ins === "string";
}
Следуя нескольким ответам, я придумал код и ошибки, вызванные им.
Object.prototype.isString = function() {
return typeof this === "string";
}
"5".isString() //returns false
"".isString() //returns false
var str = "string"
str.isString() //returns false