2

有什么方法可以清理Obj.prototype.field =我的 javascript 代码中的所有语句?我正在使用 jQuery。我想做同样的事情,只是我的代码中没有其他单词prototype。也许我要问的是不可能的——如果是这样,请告诉我,这就是答案。

我发现这是一个无法搜索的问题,因为有一个名为“原型”的 js 库......

4

4 回答 4

3

使用jQuery.extend。第二个参数的属性将被复制到第一个参数:

$.extend(Obj.prototype,{
   field1: "hi there",
   func1: function(){
     //do stuff
   }
});

这是 jQuery 内部使用的,jQuery.fn 是 jQuery.prototype 的别名:

jQuery.fn.extend({
   attr: function( name, value ) {
      return jQuery.access( this, jQuery.attr, name, value, arguments.length > 1 );
   },

   removeAttr: function( name ) {
       return this.each(function() {
                jQuery.removeAttr( this, name );
        });
   }, ...
于 2012-08-27T14:33:55.997 回答
1

你也可以做类似的事情

var p = Obj.prototype;

p.newMethod = function(window.alert("Hi! I live"));
p.newProperty = false;
于 2012-08-27T14:38:36.183 回答
0

也许只是:

Obj.prototype = {
  run: function(){},
  fooBar: function(test1,test2){}  
};

?

于 2012-08-27T14:33:32.960 回答
0

看看 jQuery 和 YUI3 等库的“扩展”功能

http://api.jquery.com/jQuery.extend/

http://yuilibrary.com/yui/docs/yui/yui-extend.html http://yuilibrary.com/yui/docs/yui/yui-extend.html

还要查看合并(jQuery,YUI3)和扩充(YUI3)以及用法。

于 2012-08-27T14:35:01.797 回答