Object.toString()、Object.valueOf() 缺乏、安全感 2022-06-18 02:37 202阅读 0赞 ### Object是所有对象的基础,其是一组数据和功能的集合,Object的每一个实例都具有下列属性和方法: ### * constructor——保存着用于创建当前对象的函数。 * hasOwnProperty(propertyName)——用于检查给定的属性在当前对象实例(非实例原型)中是否存在。其中,参数propertyName的必须以字符串形式指定(例如:o.hasOwnProperty(“name”))。 * isPrototypeOf(object)——用以检查传入的对象是否是另一个对象的原型。 * propertyIsEnumerable(propertyName)——用以检查给定的属性是否能够使用for-in语句来枚举。与hasOwnProperty()方法一样,作为参数的属性必须以字符串形式指定 * toString()——返回对象的字符串表示。 * valueOf()——返回对象的字符串、数值或布尔值表示。通常与toString()方法的返回值相同。 var a = 18; console.log(a.toString() +" " + a.valueOf() + " " + a.constructor); Number.prototype.toString = function(){ return "number"; } console.log(a.toString() +" " + a.valueOf()); var b = "18"; console.log(b.toString() +" " + b.valueOf()); var c = [1,2,3,4]; console.log(c.toString()+" " + c.valueOf()); function Person(name,age){ this.name = name; this.age = age; Person.prototype.add = function(x,y){ return x + y; } Person.prototype.toString = function(){ return "name = " + name +",age = " + age; } } var d = new Person("John",18); console.log("toString = "+d.toString() +",valueOf = " + d.valueOf() + ",constructor = " + d.constructor+", " +(d.constructor == Person)); var e = true; console.log(e.toString() +" " + e.valueOf());
还没有评论,来说两句吧...