zoukankan      html  css  js  c++  java
  • 对象原型

    如何判断一个对象的方法是来自这个本身的还是原型的?

    function Person() {
    }
     
    Person.prototype.name="Nicholas";
    Person.prototype.age=29;
    Person.prototype.sayName=function(){
        alert(this.name);
    }
     
    var person1=new Person();
    person1.name="Greg";
     
    var person2=new Person();
     
    console.log(person1.hasOwnProperty("name"));//true
    console.log(person2.hasOwnProperty("name"));//false
     
    console.log("name" in person1);//true
    console.log("name" in person2);//true
     
    for (var prop in person1) {
        console.log(prop);//name   age   sayName
    }
     
    function hasPrototypeProperty(object,pro) {//如此可判断存在于原型中的属性
        return (!object.hasOwnProperty(pro))&&(pro in object);
    }
    console.log(hasPrototypeProperty(person1,"name"));//false
    console.log(hasPrototypeProperty(person2,"name"));//true
    function Person() {
    }
     
    Person.prototype.name="Nicholas";
    Person.prototype.age=29;
    Person.prototype.sayName=function(){
        alert(this.name);
    }
     
    var person1=new Person();
    person1.name="Greg";
     
    var person2=new Person();
     
    console.log(person1.hasOwnProperty("name"));//true
    console.log(person2.hasOwnProperty("name"));//false
     
    console.log("name" in person1);//true
    console.log("name" in person2);//true
     
    for (var prop in person1) {
        console.log(prop);//name   age   sayName
    }
     
    function hasPrototypeProperty(object,pro) {//如此可判断存在于原型中的属性
        return (!object.hasOwnProperty(pro))&&(pro in object);
    }
    console.log(hasPrototypeProperty(person1,"name"));//false
    console.log(hasPrototypeProperty(person2,"name"));//true

     

  • 相关阅读:
    JavaScript实现的抛物线运动效果
    圆周运动
    正则表达式种双反斜杠问题\
    自定义日期格式-炫酷
    css font的简写规则
    匀速运动及案例
    微博发布
    无缝滚动和无缝滚动-缓存
    Dojo实现Tabs页报错(一)
    我的2013之十八年寒窗磨利剑,初出江湖还看今朝
  • 原文地址:https://www.cnblogs.com/yuaima/p/5901557.html
Copyright © 2011-2022 走看看