我知道如果我输入:
$('正文');
我得到一个 jQuery 对象。然而,在 chrome 的控制台上,我只能看到 jQuery 对象的内部数组,尽管事实上 jQuery 方法是可以访问的,例如
$('body').hide();
为什么控制台没有向我显示所有可访问的方法以及 jQuery 是如何实现这一魔力的?
如果只是因为这些方法是在原型上定义的,那么当我写这些行时怎么会这样:
function Person(){this.myProp = 'test'};
var person = new Person();
Person.prototype.proto = 'test2';
然后我在 chrome 中检查 person 我会看到:
__proto__: Person
constructor: Person()
proto: "test2"
但在检查时$('body');
那就不要proto是否显示在开发工具上?
这些方法位于对象的原型上。控制台和console.log()
默认情况下,不要在原型上显示项目。
如果您在 Chrome 调试器中检查 jQuery 对象,您可以展开原型,然后可以看到其中的所有方法。
因此,您所看到的只是控制台的所选实现。它显示直接实例属性,而不是原型上的项目。
当我将此代码放入页面时:
function Person(){this.myProp = 'test'};
Person.prototype.proto = 'test2';
var person = new Person();
var jq = $("body");
然后检查两者person
and jq
在 Chrome 调试器中,我看到:
这显示了`proto两个对象的属性。而且,如果我扩展 jQuery 对象的该属性,它确实会显示所有方法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)