javascript -->constructor 小点

作为前端三剑客 html--css--javascript

基础差了果真是 寸步难行啊 。今天看到钗神的一篇文章 讲解 javascript继承。才刚刚开始看就蒙蔽了 好一会:直接看代码吧

(function () {
    var Person = function (name) {
        this.name = name;
    };
    //Person.prototype = {};//这句将影响十分具有constructor属性
    Person.prototype.getName = function () {
        return this.name;
    };

    var Student = function (name, sex, id) {
        this.name = name || ‘无名氏‘;
        this.sex = sex || ‘不明‘;
        this.id = id || ‘未填‘; //学号
    };
    //相当于将其prototype复制了一次,若是包含constructor的话将指向Person
    Student.prototype = new Person();
    Student.prototype.getId = function () {
        return this.id;
    }
    var y = new Person();
    var s = new Student;
    var s1 = y instanceof Person;
    var s2 = s instanceof Student;
    var s3 = s instanceof Person;
    var s4 = Student.prototype.constructor === Person;
    var s5 = Student.constructor === Person;
    var s6 = Student.constructor === Function;

    var s = ‘‘;
})();

  // true

  // true

  // true

  // true

  // false

  // true

  这里 为什么第5个 是false

var s5 = Student.constructor === Person;?  我想了大楷20分钟的样子 期间各种断点调试 。最后才发现 Student是一个函数 而函数 是一个对象 在javascript里面 大部份内置对象都有自己的constructor属性 。所以函数作为对象也有 ,而作为构造函数的constructor属性 自然指向的是Function这个 所有函数的构造函数了。哎 基础渣简直汗颜啊。。。呜呜
时间: 2024-12-25 09:16:31

javascript -->constructor 小点的相关文章

初学php html javascript后小总结

php基本的语法网上看一些别人写的网站就会了) php下的执行sql语句: 1.建立数据库连接: $conn = mysql_connect("localhost", "root", "admin") or die("Could not connect " ); Localhost:本地主机名,root:mysql数据库账号   admin:mysql数据库密码 mysql_select_db("test"

JavaScript基础--小案例:在网页指定位置弹出错误信息(十二)

案例分析:点击按钮后,在网页上指定区域,提示错误信息!5秒后,错误信息提示自动消失! 1 <script languag="javascript" type="text/javascript"> 2 var clearId; 3 function test(){ 4 document.getElementById("showMsg").style.cssText="width:200px;height:50px;left:6

关于JavaScript的小故事

妈妈:Netscape公司 原名:LiveScript 更名原因:想沾Java的光 亲缘关系:取了一个叫JavaScript的名字,其实和Java没什么血缘关系 关于JavaScript的小故事,布布扣,bubuko.com

给大家分享12个或许能在实际工作中帮助你解决一些问题的JavaScript的小技巧

使用!!操作符转换布尔值 有时候我们需要对一个变量查检其是否存在或者检查值是否有一个有效值,如果存在就返回true值.为了做这样的验证,我们可以使用!!操作符来实现是非常的方便与简单.对于变量可以使用!!variable做检测,只要变量的值为:0.null." ".undefined或者NaN都将返回的是false,反之返回的是true.比如下面的示例: 01 function Account(cash) { 02 this.cash = cash; 03 this.hasMoney

15条初学者必看的JavaScript快速小贴士

(本图为:15条初学者必看的JavaScript快速小贴士) 今天小编为了我们的初学JavaScript的小伙伴们简单介绍下这门编程语言,更好的帮助你们来深入的学习它,使用它: JavaScript 是属于网络的脚本语言! JavaScript 被数百万计的网页用来改进设计.验证表单.检测浏览器.创建cookies,以及更多的应用. JavaScript 是因特网上最流行的脚本语言. JavaScript 很容易使用!你一定会喜欢它的! 为了能够帮助那些刚开始接触 JavaScript 的人,我

你想的到想不到的 javascript 应用小技巧方法

javascript 在前端应用体验小技巧继续积累. 事件源对象 event.srcElement.tagName event.srcElement.type 捕获释放 event.srcElement.setCapture();  event.srcElement.releaseCapture(); 事件按键 event.keyCode event.shiftKey event.altKey event.ctrlKey 事件返回值 event.returnValue 鼠标位置 event.x

JavaScript 代码小片段

获取对象 obj 的所有属性(自有属性和继承属性),保存到数组 lst 中 1 //获取对象obj的所有属性(自有属性和继承属性),保存到数组lst 中 2 var lst = []; 3 function getAllAttrs(obj){ 4 var arr = Object.getOwnPropertyNames(obj); 5 for(r in arr){ 6 lst.push(arr[r]); 7 } 8 if(obj.__proto__ !== null){ 9 obj = obj.

19 个 JavaScript 编码小技巧

这篇文章适合任何一位基于JavaScript开发的开发者.我写这篇文章主要涉及JavaScript中一些简写的代码,帮助大家更好理解一些JavaScript的基础.希望这些代码能从不同的角度帮助你更好的理解JavaScript. 三元操作符 如果使用if...else语句,那么这是一个很好节省代码的方式. Longhand: const x = 20; let answer; if (x > 10) { answer = 'is greater'; } else { answer = 'is l

构建自己的JavaScript模板小引擎

有时候,我们不需要太牛逼太强大的JavaScript模板引擎(比如jQuery tmpl或者handlebarsjs),我们只是需要在简单的模板里绑定一些非常简单的字段,本文将使用非常简单的技巧来帮你实现这个小功能. 首先我们先来定义我们需要的模板,在id为template的script块里: <!doctype html> <html> <head> <meta charset=utf-8> <title>Simple Templating&l