文档章节

javascript 原型上的操作 区别

小张525
 小张525
发布于 2017/05/20 10:57
字数 351
阅读 12
收藏 0
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
	<meta charset="utf-8" />
    <script type="text/javascript" src="../jquery.js"></script>
    <script>
        
        var Book = function (id, name, price)
        {
            this.id = id;
            this.name = name;
            this.price = price;
        }


        var Book2 = function (id, name, price)
        {
            this.id = id;
            this.name = name;
            this.price = price;
        }


        // 在原型的基础上
        Book.prototype.display = function () {
            console.log(this.name);
        }


        // 直接替换原型对象
        Book2.prototype = {
            display: function ()
            {
                console.log(this.name);
            }
        }


        var _Book = new Book(1, 'javascript', 12);
        var _Book2 = new Book2(1, 'javascript', 12);

        console.log(_Book);
        console.log(_Book2);



        var Test = function () { };
        var _Test = new Test();
        console.log(_Test);


        // 如果在对象的原型上添加属性和方法, 那么他的constructor属性会指向到当前对象,
        console.log(_Book.constructor == Book);    // true
        console.log(_Book.constructor == Object);  // false;
        // 如果在直接替换原型对象,那么他的constructor属性会指向最原始的对象.
        console.log(_Book2.constructor == Object);  // true;
        console.log(_Test.constructor == Test);    // true;

        // 测试某个属性是否是自拥有的
        console.log("constructor" in _Test);  // true;
        console.log("constructor" in _Book2); // true;
        console.log(_Test.hasOwnProperty('constructor'));  // false 不是自拥有的属性,这个是继承过来的.
        console.log(_Book.hasOwnProperty('constructor'));  // false




        /*
            知识点总结:
            _Book:
            constructor:(id, name, price)
            display:()
            __proto__:Object


            _Book2:
            display: ()
            __proto__: Object


            1  在原型上追加方法时, 对象的构造函数是存在的,如果是替换原型对象,那么就会无构造函数,
            2  如果在原型上追加方法,那么他的构造函数是指向自己的,通过_Book,_Test的测试看到,
               如果直接替换原型对象,那么他的构造函数是指向object,
                
        */


    </script>
</head>
<body>

</body>
</html>

 

© 著作权归作者所有

共有 人打赏支持
小张525
粉丝 6
博文 101
码字总数 32841
作品 0
乌鲁木齐
程序员
第一章—JavaScript简介

一.①DOM:Document Object Model文件对象模型 ②AJAX:Asynchronous Javascript And XML异步Javascript和XML ③CSS,Cascading Style Sheets,级联样式表 ④ECMAScript(European Computer......

湖心亭看雪
2014/10/21
0
0
Python 与 Javascript 之比较

最近由于工作的需要开始开发一些Python的东西,由于之前一直在使用Javascript,所以会不自觉的使用一些Javascript的概念,语法什么的,经常掉到坑里。我觉得对于从Javascript转到Python,有必...

naughty
2014/05/13
0
39
javaScript中__proto__与prototype的区别与联系

[转]javaScript中proto_与prototype的区别与联系 2014-5-4阅读490 评论0 最近在学习javascript的原型,发现了proto与prototype,学问很大,于是研究了一下。 首先解释一下什么是原型? 原型是...

mysky221
2015/08/30
0
0
JavaScript 中的类和继承

原文发布在我的博客 我们都知道 JavaScript 是一门基于原型的语言。当我们调用一个对象本身没有的属性时,JavaScript 就会从对象的原型对象上去找该属性,如果原型上也没有该属性,那就去找原...

moqiao
2016/03/24
0
0
JS中isPrototypeOf 和hasOwnProperty 的区别

JS中isPrototypeOf 和hasOwnProperty 的区别 ------- js使用in和hasOwnProperty获取对象属性的区别 JS中isPrototypeOf 和hasOwnProperty 的区别 1、isPrototypeOf isPrototypeOf是用来判断指......

Jack088
08/18
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Bash重定向详解

Bash重定向详解 Bash的重定向指的是将命令的输入和输出导向不同地方,而不是默认的标准输入、标准输出和标准错误。Bash的重定向实际上是对标准输入、标准输出和标准错误的重置,进而将所需输...

小陶小陶
今天
3
0
EventBus原理深度解析

一、问题描述 在工作中,经常会遇见使用异步的方式来发送事件,或者触发另外一个动作:经常用到的框架是MQ(分布式方式通知)。如果是同一个jvm里面通知的话,就可以使用EventBus。由于Event...

yangjianzhou
今天
11
0
OpenCV图像处理实例:libuv+cvui显示摄像头视频

#include <iostream>#include <opencv2/opencv.hpp>#define CVUI_IMPLEMENTATION#include <cvui.h>extern "C"{#include <uv.h>}using namespace std;#define WINDOW_NAM......

IOTService
今天
3
0
openJDK之JDK9的String

1.openJDK8的String 先来看下openJDK8的String的底层,如下图1.1所示: 图1.1 底层上使用的是char[],即char数组 每个char占16个bit,Character.SIZE的值是16。 2.openJDK9中的String 图2.1...

克虏伯
今天
4
0
UEFI 模式下如何安装 Ubuntu 16.04

作者:知乎用户 链接:https://www.zhihu.com/question/52092661/answer/259583475 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 针对UEFI模式下安装U...

寻知者
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部