作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
假设我有以下代码;
var A = {a:10};
var B = {b:20};
B.prototype = A;
alert(B.a);
我对 B.a 越来越不确定。难道我做错了什么?如何设置对象字面量的原型(prototype)?
我知道如何为 Constructor 对象做。所以下面的代码可以完美运行
function A(){this.a=10}
function B(){this.b=20}
B.prototype = new A();
b = new B;
alert(b.a);
我如何为对象字面量做这件事?
最佳答案
对象继承自它们的构造函数的 原型(prototype)属性,而不是它们自己的。构造函数的原型(prototype)分配给内部 [[Prototype]]
在某些浏览器中可用的属性为 __proto__
属性(property)。
所以b
要继承a
,需要把a
放在b
的继承链上,例如
经典原型(prototype)继承:
var a = {a: 'a'};
function B(){}
B.prototype = a;
var b = new B();
alert(b.a); // a
使用 ES5 对象创建:
var a = {a: 'a'};
var b = Object.create(a);
alert(b.a); // a
使用 Mozilla __proto__
:
var a = {a: 'a'};
var b = {};
b.__proto__ = a;
alert(b.a); // a
关于javascript - 为对象字面量设置原型(prototype),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15472005/
1.字面常量 (1)字面意思是啥就是啥,看其表示就可以知道其值和类型。 (2)有值无名,一用来初始化变量,与一种字符相关联。 #include <stdio.h>int main()
我是一名优秀的程序员,十分优秀!