如何使用object.create创建对象
How to create object using object.create?
>我在用标签引用的单独文件中有以下代码
function _TEST()
{
var val;
this.get = function(x)
{
return val;
}
this.prop = 'testing';
this.set = function(x)
{
val = x
return val;
}
this.exp = function(x)
{
function meth(x)
{
return 'I am a private '+x;
}
return meth(x);
}
}
现在在主页的头部部分,我有
var tst = new _TEST();
window.onload = function()
{
tst.set('Hello')
alert(tst.get());
var tst2 = Object.create(_TEST.prototype);
tst2.prop = "testing"; // the only property that shows up for tst2 below
var str = '';
for(var x in tst)
{
str += x+" : "+tst[x]+"'n";
}
str += "'n'ntst2:'n"
for(var x in tst2)
{
str += x+" : "+tst2[x]+"'n";
}
alert(str)
}
调用警报的输出为:
get : function (x) {
return val;
}
prop : testing
set : function (x) {
val = x;
return val;
}
exp : function (x) {
function meth(x) {
return "I am a private " + x;
}
return meth(x);
}
tst2:
prop : testing
据我了解,Object.create 假设创建一个继承自原型的对象独立。但是TST2没有这些。我在这里做错了什么?这正在Mac OSX上的Firefox 12.0中进行测试,我不确定它使用的javascript版本。我是使用 O'Reillies Javascript: The Definitive Guide (rhino book) 来增加我对对象和相关知识法典
编辑:我想通了:
它适用于
var tst2 = Object.create(tst);
您的代码尚未向_TEST.prototype
添加任何属性。_TEST
函数将属性直接添加到进行new _TEST()
调用时创建的每个实例。这与原型无关。
相关文章:
- 在创建对象后附加一个jquery事件
- 错误:自动化服务器可以't创建对象
- 如何在不使用 new 关键字的情况下从函数创建对象
- 文本表示法VS.构造函数,用于在JavaScript中创建对象
- 创建对象函数原型和代码是错误的
- 使用Undercore创建对象集合
- 如何在JavaScript中创建对象时使用变量的值
- 正在创建对象的递归列表
- 这两种不同的创建对象文字的方法有什么区别
- ES6 const,用于在JavaScript中创建对象原型;这是一种模式吗
- 使用字符串作为名称创建对象
- 使用参数创建对象
- 如何在JS中创建对象的可变和不可变副本
- 用javascript创建对象的dynamic数组
- 使用Object.create()创建对象的模式
- 如何使用object.create创建对象
- 使用 Object.create() 和 Object.assign() 创建对象有什么区别?
- Object.create是否创建对象文字的实例
- 是否可以确定使用object创建的对象.create继承了JavaScript中的Array
- 使用object .create()动态创建对象