首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Object.create的proto参数中使用时,什么是对象与Object.prototype

在Object.create的proto参数中使用时,什么是对象与Object.prototype
EN

Stack Overflow用户
提问于 2017-10-21 12:16:18
回答 2查看 1.2K关注 0票数 9

我正在尝试理解Object和Object.prototype之间的区别。因为要创建一个空对象,需要使用Object.prototype。我觉得为什么不反对。

我将通过以下方式创建一个对象。

方法1:

代码语言:javascript
运行
AI代码解释
复制
o = Object.create(Object.prototype,{ p : {value: "test"} });
console.log(o.__proto__);

结果是:

代码语言:javascript
运行
AI代码解释
复制
Object {__defineGetter__: function, __defineSetter__: function, hasOwnProperty: function, __lookupGetter__: function, __lookupSetter__: function}

代码语言:javascript
运行
AI代码解释
复制
console.log(o)

结果是

代码语言:javascript
运行
AI代码解释
复制
Object {p: "test"}
    p : "test"
    __proto__ : Object
        constructor : function Object()
        hasOwnProperty : function hasOwnProperty()
        isPrototypeOf : function isPrototypeOf()
        propertyIsEnumerable : function propertyIsEnumerable()
        toLocaleString : function toLocaleString()
        toString : function toString()
        valueOf : function valueOf()
        __defineGetter__ : function __defineGetter__()
        __defineSetter__ : function __defineSetter__()
        __lookupGetter__ : function __lookupGetter__()
        __lookupSetter__ : function __lookupSetter__()
        get __proto__ : function __proto__()
        set __proto__ : function __proto__()

vs

代码语言:javascript
运行
AI代码解释
复制
o = Object.create(Object,{ p : {value: "test"} });
console.log(o.__proto__);

结果是:

代码语言:javascript
运行
AI代码解释
复制
function Object() { [native code] }

和:

代码语言:javascript
运行
AI代码解释
复制
console.log(o)

结果是:

代码语言:javascript
运行
AI代码解释
复制
Function {p: "test"}
    p : "test"
    __proto__ : function Object()
        arguments : null
        assign : function assign()
        caller : null
        create : function create()
        defineProperties : function defineProperties()
        defineProperty : function defineProperty()
        entries : function entries()
        freeze : function freeze()
        getOwnPropertyDescriptor : function getOwnPropertyDescriptor()
        getOwnPropertyDescriptors : function getOwnPropertyDescriptors()
        getOwnPropertyNames : function getOwnPropertyNames()
        getOwnPropertySymbols : function getOwnPropertySymbols()
        getPrototypeOf : function getPrototypeOf()
        is : function is()
        isExtensible : function isExtensible()
        isFrozen : function isFrozen()
        isSealed : function isSealed()
        keys : function keys()
        length : 1
        name : "Object"
        preventExtensions : function preventExtensions()
        prototype : Object
        seal : function seal()
        setPrototypeOf : function setPrototypeOf()
        values : function values()
        __proto__ : function ()
        [[FunctionLocation]] : <unknown>

总的来说,我发现:

代码语言:javascript
运行
AI代码解释
复制
o = {};
// is equivalent to:
o = Object.create(Object.prototype);

好呀

代码语言:javascript
运行
AI代码解释
复制
o = {};
// is equivalent to:
o = Object.create(Object);
EN

回答 2

Stack Overflow用户

发布于 2017-10-21 12:40:05

原因Object是一个用来构建对象的函数:

代码语言:javascript
运行
AI代码解释
复制
Object instanceof Function

所以你也可以这样做:

代码语言:javascript
运行
AI代码解释
复制
const o = new Object();

如果您已经阅读了更多关于javascript中继承的内容,就会知道使用new调用函数实际上构建了一个继承自构造函数.prototype属性的对象,然后使用该对象调用构造函数,因此上面一行等于:

代码语言:javascript
运行
AI代码解释
复制
const o = Object.create( Object.prototype );
Object.call( o );

如果你这样做了

代码语言:javascript
运行
AI代码解释
复制
Object.create( Object )

您将创建一个继承构造函数的对象。我承认,对象实际上是一个函数,它继承了从Object.prototype继承的Function.prototype,这让人非常困惑……

票数 3
EN

Stack Overflow用户

发布于 2018-10-12 01:35:41

使用js-calendar.js中的代码:

代码语言:javascript
运行
AI代码解释
复制
function defineProperties(target, props)
{
  '''
  Object.defineProperty(target, descriptor.key, descriptor);
}
return function(Constructor,protoProps, staticProps)
{
   if (protoProps) defineProperties(Constructor.prototype,protoProps)
   if (staticProps) defineProperties(Constructor,protoProps)
}

如果在第一行中删除了.prototype,则不会创建“object”.structor,因此new不会继承任何内容。在第二行中不需要,因为第一行。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46863128

复制
相关文章
jQuery Datepicker 日期插件
Datepicker日期选择插件是一个配置灵活的插件,可以自定义其展示方式,包括日期格式、语言、限制选择日期范围、添加相关按钮以及其它导航等。
阳光岛主
2019/02/19
3.2K0
jQuery Datepicker 日期插件
jQuery UI Datepicker使用介绍
本博客使用Markdown编辑器编写 在企业级web开发过程中,日历控件和图表控件是使用最多的2中第三方组件。jQuery UI带的Datepicker,日历控件能满足大多数场景开发需要。本文就主要讨论jQuery UI Datepicker的使用,和中文本地化配置。 1.jQuery UI介绍 jQuery UI是一套基于jQuery控件和动画效果Javascript类库。可以用来构建交互式的互联网应用程序。最新版本1.10.4.基于jQuery 1.6+ jQuery UI官方网站 2.jQuery
八哥
2018/01/18
2K0
jQuery UI Datepicker使用介绍
jQuery ui datepicker 日历转中文
做个笔记,以后详解 jQuery(function($){ $.datepicker.regional['zh-CN'] = { closeText: '关闭', prevText: '<上月', nextText: '下月>', currentText: '今天', monthNames: ['一月','二月','三月','四月','五月','六月', '七月','八月','九
deepcc
2018/05/16
1.1K0
利用jquery ui的datepicker开发一个课程日历
    这两天在开发某商学院的网站,里面有涉及到课程的模块,客户希望在网站的首页显示一个日历,在有课程的日期加上显眼的标识,使网站用户一眼看到日历后就能知道哪天商学院有课程以便他们安排时间报名修读。
风柏杨4711
2021/03/15
2.1K0
5-15 bootcss 之 modal 以及 jquery ui 之datepicker 小记
  最近公司在用bootstrap和Jquery UI做项目,类似与OA的东西前两天碰到点问题,记录一下。希望读者不要在遇到和我一样的问题。
_淡定_
2018/08/24
9300
Jquery(进阶一) 日期控件My97DatePicker的基本用法
My97DatePicker是一款非常灵活好用的日期控件。使用非常简单。 
Java架构师必看
2021/05/31
2K0
【说站】mysql间歇锁是什么
2、对于键值在条件范围内但并不存在的记录,在相等条件下请求给一个不存在的记录也会加锁,叫做间隙锁。
很酷的站长
2022/11/23
3760
【说站】mysql间歇锁是什么
bootstrap datepicker日期插件汉化
bootstrap datepicker是一款不错的日期插件,而且在国际化方面也有不错的支持,当然也支持简体中文了,我们只需要引入简体中文js(bootstrap-datepicker.zh-CN.js),并在datepicker属性配置language为‘zh-CN’即可,示例如下:
johnhuster的分享
2022/03/29
1.1K0
如何解决网络间歇问题?
在解决网络问题时,间歇性问题最难解决。仅在出现问题时尝试抓住问题可能需要数周的时间。解决间歇性问题有四个关键步骤。首先,您必须进入数据包的路径。其次,您需要能够长时间捕获,以确保您不会错过这个问题。最后,您需要一种方法来确定问题何时发生,以便您可以深入跟踪并查找问题数据包。继续阅读以了解如何使用IOTA 1G可靠地找到这些问题的根源。
虹科网络可视化与安全
2020/08/21
1.2K0
如何解决网络间歇问题?
勒索软件新技术趋势:间歇性加密
2021 年夏天,LockFile 勒索软件是首批引入间歇性加密技术的勒索软件家族之一。后来,越来越多的勒索软件都应用了这一技术。
FB客服
2022/11/14
9740
勒索软件新技术趋势:间歇性加密
Datepicker日期选择器插件
这个插件还是比较简单的,而且样式也比较漂亮,可以自定义选择年月日、年月日时分、年月、时间段选择等等。
从入门到进错门
2018/08/21
4K0
Datepicker日期选择器插件
好用的jQuery工作进度条
对于进度条,在HTML5下有个新标签就是用来呈现任务的进度,鉴于目前很多旧式浏览器还不完全支持HTML5,大家都喜欢用javascript和css实现进度条的功能。上周我在做OA里面的任务管理时,通过比较jQuery UI自带的[URL=http://jqueryui.com/progressbar]progress bar[/URL]还有jQuery easyui中的[URL=http://www.jeasyui.com/documentation/progressbar.php]progress bar[/URL],发现都不太符合我的需求,最后找到一个特别简单的实现,只需几行代码即可,读懂英文的看这里[URL=http://workshop.rs/2012/12/animated-progress-bar-in-4-lines-of-jquery/]ANIMATED PROGRESS BAR IN 4 LINES OF JQUERY[/URL],也可以看GitHub上的网址:[URL=https://github.com/kopipejst/progressbar]https://github.com/kopipejst/progressbar[/URL]
崔文远TroyCui
2019/02/26
9450
最好用的 12 款 Vue Timepicker 时间日期选择器测评推荐 - 卡拉云
本文首发:《最好用的 12 款 Vue Timepicker 时间日期选择器测评推荐 - 卡拉云》
蒋川
2022/02/28
8.7K0
最好用的 12 款 Vue Timepicker 时间日期选择器测评推荐 - 卡拉云
MCE | 间歇性禁食增强抗癌疗效
越来越多的研究表明,“禁食”不仅与免疫系统调控 、血糖调节有关,还对多种疾病的治疗有改善效果,如心血管疾病和癌症等。
MedChemExpress
2023/03/16
3500
MCE | 间歇性禁食增强抗癌疗效
jQuery ui 中文日历
jQuery ui 中文日历 <link href="css/jquery-ui-1.10.4.custom.min.css" rel="stylesheet" type="text/css" /> <script src="js/jquery-1.10.2.js"></script> <script src="js/jquery-ui-1.10.4.custom.min.js"></script> <script type="text/javascript"> jQuery(function(){
deepcc
2018/05/16
2.2K0
时间选择(DatePicker和TimePicker)使用
Android中日期选择控件-DatePicker的使用 android 开发 时间选择器TimePicker的使用
李小白是一只喵
2020/04/24
2.7K0
Angular 循环内使用 material datepicker
material datepicker 需要用到模板变量,如果需要在循环出来datepicker可以这么干
mafeifan
2019/02/25
1.9K0
点击加载更多

相似问题

JQuery间歇工作

10

jQuery函数间歇工作

11

JQuery DatePicker不工作

20

jquery - datepicker不工作

33

jQuery DatePicker不工作

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档