最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

Javascript原型链和原型的一个误区_javascript技巧

来源:动视网 责编:小采 时间:2020-11-27 21:28:12
文档

Javascript原型链和原型的一个误区_javascript技巧

Javascript原型链和原型的一个误区_javascript技巧:之前我对Javascript的原型链中, 原型继承与标识符查找有些迷惑, 如, 如下的代码: 代码如下: function Foo() {}; var foo = new Foo(); Foo.prototype.label = laruence; alert(foo.label); //output: laruenc
推荐度:
导读Javascript原型链和原型的一个误区_javascript技巧:之前我对Javascript的原型链中, 原型继承与标识符查找有些迷惑, 如, 如下的代码: 代码如下: function Foo() {}; var foo = new Foo(); Foo.prototype.label = laruence; alert(foo.label); //output: laruenc
 之前我对Javascript的原型链中, 原型继承与标识符查找有些迷惑,

如, 如下的代码:

代码如下:
function Foo() {};
var foo = new Foo();
Foo.prototype.label = "laruence";
alert(foo.label); //output: laruence
alert(Foo.label);//output: undefined

今天看到了如下这个图:

Javascript object layout
另外, 在Javascript Object Hierarchy看到:

The prototype is only used for properties inherited by objects/instances created by that function. The function itself does not use the associated prototype.

也就是说, 函数对象的prototype并不作用于原型链查找过程中,

今天在firefox下发现(因为firefox通过__proto__暴露了[[prototype]]), 真正参与标识符查找的是函数对象的__proto__,

代码如下:
function Foo() {};
var foo = new Foo();
Foo.__proto__.label = "laruence";
alert(Foo.label); //output: laruence
alert(foo.label);//output: undefined

而, 显然的:

代码如下:
function Foo() {};
alert(Foo.__proto__ === Foo.prototype); //output: false

另外, 也解释了,

代码如下:
alert(Object.forEach); // undefined

Function.prototype.forEach = function(object, block, context) {
for (var key in object) {
if (typeof this.prototype[key] == "undefined") {
block.call(context, object[key], key, object);
}
}

};

alert(Object.forEach);
alert(Function.forEach);
alert(Object.forEach === Function.forEach); // true

文档

Javascript原型链和原型的一个误区_javascript技巧

Javascript原型链和原型的一个误区_javascript技巧:之前我对Javascript的原型链中, 原型继承与标识符查找有些迷惑, 如, 如下的代码: 代码如下: function Foo() {}; var foo = new Foo(); Foo.prototype.label = laruence; alert(foo.label); //output: laruenc
推荐度:
标签: 一个 js javascript
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top