zan*_*ngw 2 javascript prototype google-chrome v8
现在我学习JavaScript prototype和__proto__,并发现一些有用的链接
__proto__与constructor.prototype有何不同?
我可以在Chrome下的以下代码中获取__proto__对象的值f.
var Foo = function() {}
var f = new Foo();
f.__proto__
> Foo {}
Run Code Online (Sandbox Code Playgroud)
但是,设置后Foo.prototype.__proto__到null,价值__proto__为undefined.
var Foo = function() {}
Foo.prototype = {name: 'cat', age: 10};
Foo.prototype.__proto__ = null;
var f = new Foo();
f.__proto__
> undefined
Run Code Online (Sandbox Code Playgroud)
但我能得到的价值f.name,这是cat.这是我的理解,因为值f.name可以检索,__proto__对象f应该指向Foo.prototype.为什么价值f.__proto__是undefined?
__proto__是JavaScript的内部特殊属性.你不应该使用.
来自mdn
而Object.prototype.今天大多数浏览器都支持proto,它的存在和确切的行为只在ECMAScript 6规范中标准化,作为确保Web浏览器兼容性的传统功能.为了获得更好的支持,建议仅使用Object.getPrototypeOf().
| 归档时间: |
|
| 查看次数: |
428 次 |
| 最近记录: |