面向对象

<script type="text/javascript">

1、// 创建构造函数 使用原型创建对象

function CreatStudent(name,age){
    //1、1把外部的参数绑定在实例属性
        this.name =name;
        this.age = age;
};

1.2把相同的属性或方法绑定在原型上 (原型属性、原型方法)

CreatStudent.prototype.gender = "男";
CreatStudent.prototype.sayHi = function(){
    alert("hello");
};

2、调用构造函数来创建对象

var obj1 = new CreatStudent("李伟",22);
var obj2 = new CreatStudent("李培舟",23);

① instanceof 可以判断对象属于哪个构造函数

② constructor 也可以判断对象属于哪个构造函数 (重要)

③ 实例对象中有一个constructor属性,指向它的构造函数

④ 原型中也有constructor属性,指回构造函数

console.log(obj1.constructor==obj2.constructor)
console.log(CreatStudent.prototype.constructor==CreatStudent);

⑤ in判断该属性是否存在这个对象中(实例属性,原型属性,存在true,否侧false)

        alert("name" in obj1);   //实例属性
        alert("gender" in obj1)//原型属性

⑥ hasOwnProperty()方法:可以判断出是从实例属性还是原型属性,如果是实例属性返回true,如果是原型属性或者不存在返回false

        console.log(obj1.hasOwnProperty("name"));
        console.log(obj1.hasOwnProperty("gender"));
        console.log(obj1.hasOwnProperty("aaa"));

例:判断是构造函数中的实例属性

function isPrototype(obj,proString){
    if(obj in proString){
        if(!obj.hasOwnProperty(proString)){
            return true;
        }else{
            return false
        }
      return fasle;
    }
}

结合使用构造函数和原型创建对象

注:把会变化的属性放在构造函数中,让每一个对象维护各自不同的属性空间,把相同的属性、方法放在原型中,让不同的对象共用同一个属性、方法,而不用单独开辟内存空间维护

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容