• Javascript[obj&prototype&class] 实践学习1


    1、函数(构造函数)

    var p = new Person('Herry', '22');
    alert(p.age);
    function Person(name, age) {
       this.name = name;
       this.age = age;
    }
    这时我们就有了一个 function,而且这个 function 会有一个 prototype 的属性, 通过这个属性可以访问该函数的原型,
    从图中可以看出,其实不仅仅是可以通过 Person.prototype 访问原型,原型中也有一个 constructor 的属性,Person.prototype.constructor 就指向 Person 函数自身。

     

    创建实例:
    1 var p1 = new Person("Jack", 20);
    2 var p2 = new Person("Peter", 22);
    3 alert(p2.name); // Peter
    4 alert(p2.constructor); // 函数自身
    5 alert(Person.prototype.constructor); // 函数自身
    当创建了实例 p1 和 p2 之后,p1, p2 内都存在内部属性 [ [ Prototype ] ],
    而这个属性,其实就指向构造函数 Person 的原型,有趣的是 p1 和 p2 和构造函数 Person 本身没有直接的关系, 它们的联系就是它们都指向了同一个原型

     

    每当读取对象的某个属性时,都会执行一次搜索,目标是具有给定名字的属性,
    搜索首先从对象实例本身开始,如果在实例中找到了具有给定名字的属性,则返回该属性的值,
    如果没有找到,则继续搜索该实例的原型,在原型对象中查找具有给定名字的属性
    Person.prototype.sayHi = function() {
       document.write("<div>Hi</div><hr>");
    }
    var say = new Person(); 
    say.sayHi(); // Hi
    原型肯定是一个object;
    原型的构造函数,指向函数本身,输出其本身的构造代码;
  • 相关阅读:
    linux下将一个大的文件拆分成若干小文件
    linux远程下载文件 的两种方法之 ftp命令和scp命令
    Python正则表达式的七个使用范例
    isinstance()和type()
    “可变的”tuple
    Tomcat常用面试题
    Tomcat常用配置详解
    Java工程师该如何编写高效代码?
    收集100条实用的网络知识
    MySQL 19个规则数据库设计总结
  • 原文地址:https://www.cnblogs.com/smallgo/p/3110273.html
Copyright © 2020-2023  润新知