JavaScript对象和原型的相关方法

    科技2026-04-24  15

    实例

    <script> //in 关键字用来寻找属性或方法是否在对象中写法:属性 in obj /* var person = { name: "张三", age: 23, gender: "male", eat: function(){ console.log(this.name+"is eating"); } } //使用in来遍历对象中的所有属性 for(var key in person){ console.log(key + "="+person[key]); } var animal = { species: "human", hapti: "land", sleeping: function(){ console.log("sleeping"); } } person.__proto__ = animal; console.log(person.species); for(var key in person){ //这里会将该对象的原型上的属性和方法也打印出来 console.log(key + "="+person[key]); } //-------obj.hasOwnProperty(key):判断key否是直接是obj的属性或方法,而不是原型上的 //alert(person.hasOwnProperty("species")); //以下方法会遍历出对象中的所有自己的属性和方法 for(var key in person){ if(person.hasOwnProperty(key)){ console.log(key + "="+person[key]); } } //以下方法会遍历出对象中的原型的属性和方法 for(var key in person){ if(!person.hasOwnProperty(key)){ console.log(key + "="+person[key]); } } //in本质上也是一个运算符,左侧是属性名,右侧是对象,运算结果为如果该属性在对象(或原型)中则返回true,否则返回false document.write("species" in person);*/ //----------constructor:是对象原型上的一个属性,该属性指向的是构造该对象的构造函数 function Person(name, age){ this.name = name; this.age = age; this.eat = function(){ console.log(this.name+" is eating"); } } var p1 = new Person("john", 23); console.log(p1); //使用constructor:是对象原型上的一个属性,该属性指向的是构造该对象的构造函数 /*function Animal(){ this.name = name; this.age = age; this.sleep = function(){ console.log(this.name+" is sleeping"); } } //将p1的constructor目标指向Animal p1.__proto__.constructor = Animal; console.log(p1); p1.sleep();//这里会报错*/ /*var p2 = new Person("张三",44); p1.__proto__.constructor.prototype.sleep = function(){ console.log(this.name + " is sleeping"); }//Person.prototype.sleep是一模一样的 p1.sleep(); p2.sleep();*/ //------------------Object.create方法 //Object.create(对象,null),实现继承 //对象1 = Object.create(对象2) 表示对象1中的原型就是对象2 var p2 = Object.create(p1); console.log(p2); var obj = Object.create(null);//这里将定义一个真正的空对象,连原型也没有 var obj2 = {} console.log(obj,obj2) document.write("obj2"+obj2); document.write("obj"+obj);//这里会报错,因为obj里没有原型,也就不能继承object中的tostring方法 </script>
    Processed: 0.009, SQL: 9