46
A
回答
48
var newObj = {
met1 : function() {
alert('hello');
}
};
然后,该方法可以被称为像这样:
newObj.met1();
顺便说一句,声明一个新对象时,使用对象文字({}
),而不是new Object()
构造函数。
13
一般采用prototype属性:
function YourObject()
{
//
}
YourObject.prototype.yourMethod= function()
{
//
}
有一件事我还没有看到任何人提及却又是为什么你可能想通过使用prototype
属性,比如对象的文字符号:这样做保证了函数定义在通过函数原型创建的对象的所有实例之间共享,而不是在每个实例化一次的情况下共享。
83
你可以从答案中看出,你已经有了不止一种方法。
#1
var o = new Object();
o.method = function(){}
#2
var o = new Object();
o.prototype.method = function(){}
#3
function myObject() {
this.method = function(){}
}
var o = new myObject();
#4
function myObject() {}
myObject.prototype.method = function(){}
var o = new myObject();
#5
var o = {
method: function(){}
}
#3和#4正在使用构造函数。这意味着您可以使用它们来创建多个具有相同“类”的对象(这些类实际上并不存在于JavaScript中)
#4与#3不同,因为所有使用#4构造的对象将共享一个相同的'方法'方法,因为它是它们原型的一个属性。这样可以节省内存(但数量非常少),如果更改原型的方法,所有#4对象都会立即更新 - 即使它们已经被实例化。
#1,#2和#5几乎都相当。这是因为可能一次只有其中之一,所以#2将原型添加到原型的事实并不重要。 (不考虑克隆考虑)
有添加方法使用带有封闭或添加“静态”属性/方法或私人嵌套函数工厂的对象仍然更多的方式... :)
1
Function.prototype.implement = function(member, value) {
this[member] = value;
return this;
}
function MyFunction() {
//...
}
(function($){
$.implement("a", "blabla")
.implement("b", function(){ /* some function */ })
.implement("c" {a:'', b:''});
})(MyFunction);
2
别担心兄弟,这里的代码是:
var myObj=function(){
var value=null
this.setValue=function(strValue){
this.value=strValue;
};
this.getValue=function(){
return this.value;
};
};
你可以调用这个对象是这样的:
var obj= new myObj();
obj.setValue("Hi!");
alert(obj.getValue());
0
您也可以执行以下操作而不是使用“Object.create()”方法。
函数调用:
com.blah.MyChildObj.prototype = createObject(com.blah.MyParentObj.prototype,
com.blah.MyChildObj);
函数定义:
function createObject(theProto, theConst) {
function x() {};
x.prototype = theProto;
x.prototype.constructor = theConst;
return new x();
}
1
随着es6,你可以做这样的:
var a = {
func(){
return 'The value';
}
}
document.getElementById('out').innerHTML = a.func();
<div id="out"></div>
相关问题
- 1. 如何在JavaScript中为自定义对象创建属性?
- 2. 如何使用自定义对象创建自定义对象?
- 3. 创建/填充Javascript自定义对象
- 4. 为wcf创建自定义对象
- 5. 如何为Linq2SQL对象创建自定义获取和设置方法
- 6. 在rails中创建自定义方法
- 7. 在自定义对象的javascript中创建一个数组
- 8. 为收集创建自定义方法
- 9. 如何在MVC中创建自定义字符串对象modelbind?
- 10. 如何在iphone中创建自定义类的对象?
- 11. 如何在ODOO中创建自定义对象?
- 12. 如何在创建对象时从swift中自定义ObjectId
- 13. 在javascript中创建自定义错误的正确方法
- 14. 如何在javascript中创建自定义对象的常用常量实例?
- 15. 如何调用使用C#在JavaScript中创建的自定义对象的方法?
- 16. 为自动构建创建JavaScript自定义构建系统的最佳方法?
- 17. 如何在onEndPage()itext方法中传递自定义对象?
- 18. 如何在MovieClip中创建自定义属性/方法? (AS3)
- 19. 如何在Rails 3中创建自定义的“关联方法”?
- 20. 如何为对象调用自定义方法?
- 21. 如何为类和方法创建自定义注释?
- 22. 如何使用表单部分为自定义创建方法?
- 23. 如何为我的导轨模型创建自定义方法
- 24. 如何为自定义类创建println/print方法
- 25. 如何在RestEasy中创建MessageBodyWriter以将自定义对象作为HTML返回?
- 26. 如何在Tensorflow对象检测中为自定义标签创建tfrecord?
- 27. 如何在javascript中创建JSON对象
- 28. 从数组创建自定义对象
- 29. 如何在春季安全创建自定义UserDetail对象
- 30. 如何在Play + Scala中为自定义对象定义json writer?
呃,不,实际上这是行不通的。您可以将方法添加到某个对象的原型属性中,然后对其进行实例化,而不是通过修改实例上名为“prototype”的属性来添加方法。 – Shog9 2009-02-02 20:57:14
对不起,这就是我的意思,是的;整个上午我一直在编写ActionScript。 :)我会纠正的。嘿,谢谢谁低估了我;感谢。 – 2009-02-02 20:59:55
Jeez,去轻松的人们 - 这个概念是绝对正确的。 – 2009-02-02 21:02:54