javascript - 为什么没有 new 运算符就创建了新实例?

标签 javascript

使用此代码( jsfiddle ):

Animal = function() {
};

Animal.prototype.bark = function() {};

Animal.inspect = function() {
    console.log( this.prototype.hasOwnProperty( 'bark' ) ); // true
}

Animal.inspect();
inspect 中的

this 似乎是 Animal 的一个新实例(而不是全局或 window 范围)。

怎么会这样?

最佳答案

您没有创建实例。

您对构造函数对象本身调用inspect()

因此,thisAnimal,然后检查原型(prototype)(不是当前对象)以查看它是否具有 back 属性。

关于javascript - 为什么没有 new 运算符就创建了新实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33935967/

相关文章:

javascript - 无法通过 Parse Facebook 登录获取用户的电子邮件

javascript - JQuery 选项卡 UI - 菜单旋转 - OnMouseOver 和 OnMouseOut

javascript - getElementsByName ('q' )[0] 返回未定义

javascript - d3.js 文本标签中的 html

javascript - 在文本框中按回车键打开链接

javascript - RxJs zip 运算符在 xstream 中等效吗?

javascript - Jquery 无法从 WCF REST 服务获取响应

javascript - 在 MainActivity Xamarin 中从 webview 调用 javascript

javascript - JS Codecademy Return II - 返回问题

javascript - jQuery msDropdown ie9 问题