如何向javascript字符串对象添加自定义属性

如何向javascript字符串对象添加自定义属性,javascript,string,Javascript,String,我想为字符串对象定义我自己的自定义属性。这样我就可以直接在字符串对象上使用这些属性。例如:-str是我的字符串对象。那么我应该能够使用.IsNull属性,如下所示 var str = “string”; str.IsNull; //returns true if null str.IsEmpty; returns true if empty 你可以浏览酒店 比如说 String.prototype.yourMethod = function(){ // Your code here }

我想为字符串对象定义我自己的自定义属性。这样我就可以直接在字符串对象上使用这些属性。例如:-str是我的字符串对象。那么我应该能够使用
.IsNull
属性,如下所示

var str = “string”;

str.IsNull; //returns true if null

str.IsEmpty; returns true if empty
你可以浏览酒店

比如说

String.prototype.yourMethod = function(){
 // Your code here
}
你可以浏览酒店

比如说

String.prototype.yourMethod = function(){
 // Your code here
}

您必须向字符串包装器对象的原型添加一个新方法。最佳做法是在声明方法之前检查方法是否已经存在。例如:

String.prototype.yourMethod = String.prototype.yourMethod || function() {
    // The body of the method goes here.
}

您必须向字符串包装器对象的原型添加一个新方法。最佳实践是在声明方法之前检查该方法是否已经存在。例如:

String.prototype.yourMethod = String.prototype.yourMethod || function() {
    // The body of the method goes here.
}

我个人会为这个做函数,而不是扩展原型

如果扩展原型,必须确保将其添加到所有要检查的类型中,它超出了
字符串
对象的范围

函数为空(str){
console.log(str==null);
}
函数isEmpty(str){
log(typeof str=='string'&&str==''');
}
isNull(null);
isNull(“”);
isNull(“测试”);
isEmpty(空);
isEmpty(“”);

isEmpty(“测试”)我个人会为此创建函数,而不是扩展原型

如果扩展原型,必须确保将其添加到所有要检查的类型中,它超出了
字符串
对象的范围

函数为空(str){
console.log(str==null);
}
函数isEmpty(str){
log(typeof str=='string'&&str==''');
}
isNull(null);
isNull(“”);
isNull(“测试”);
isEmpty(空);
isEmpty(“”);

isEmpty(“测试”)谢谢你们所有人的帮助。但我成功了

Object.defineProperty( String.prototype, 'IsNullOrEmpty', {
    get: function () {
        return ((0 === this.length) || (!this) || (this === '') || (this === null));
    }
});

var str = "";
str.IsNullOrEmpty;//returns true

谢谢你们所有人的帮助,但我成功了

Object.defineProperty( String.prototype, 'IsNullOrEmpty', {
    get: function () {
        return ((0 === this.length) || (!this) || (this === '') || (this === null));
    }
});

var str = "";
str.IsNullOrEmpty;//returns true

请注意,您无法使用
string
原型中的方法检查字符串是否为
null
,因为类型将为
null
,而不是
string
;OP正在尝试添加属性(或者可能是类似于客户端代码属性的getter方法)。为什么js中的字符串不能为null?@PawanWagh,因为
null
string
类似。它不能同时属于这两种类型。它是一个字符串,可能是空的,或者它是空的(或者是未定义的,这也是另外一回事)。请注意,您不能使用
string
原型中的方法检查字符串是否为
null
,因为类型将是
null
,而不是
string
;OP正在尝试添加属性(或者可能是类似于客户端代码属性的getter方法)。为什么js中的字符串不能为null?@PawanWagh,因为
null
string
类似。它不能同时属于这两种类型。它是一个字符串,可能是空的,或者它是空的(或者是未定义的,这也是另外一回事)。字符串不能是
null
(字符串和
null
是不同的类型)。C#允许空字符串。谢谢你不知道js没有空字符串字符串字符串不能是
null
(strings和
null
是不同的类型)。C#允许null string。感谢您不知道js没有null strings。如果您只是盲目地假设预先存在的方法将与您尝试添加的方法完全相同,那么“检查”该方法是否存在会有帮助。(如果对旧浏览器使用多填充标准JS方法,应该没问题,但对于自定义方法,可能会出现可怕的错误。)我不认为“检查”该方法是否存在有什么帮助,如果你只是盲目地假设预先存在的方法将与你试图添加的方法完全相同。(如果在旧浏览器中使用标准JS方法,应该可以,但在自定义方法中可能会出现可怕的错误。)